@openclaw/imessage 2026.10.10 → 2026.11.5-beta.1

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.
Files changed (137) hide show
  1. package/dist/.setup/{accounts-BH0coL46.mjs → accounts-C1Ypv3Wn.mjs} +6 -7
  2. package/dist/.setup/{actions-CW7XYYF4.mjs → actions-qOuKy8To.mjs} +360 -108
  3. package/dist/.setup/{actions.runtime-B2ZHQ3TJ.mjs → actions.runtime-Ccg9CARL.mjs} +10 -56
  4. package/dist/.setup/{api-6xi-NBrt.mjs → api-BXXuQQCS.mjs} +7 -7
  5. package/dist/.setup/{api-B0ih8Iof.mjs → api-DTbxSOPc.mjs} +8 -8
  6. package/dist/.setup/{approval-handler.runtime-BKmqba3L.mjs → approval-handler.runtime-B6vrFfZx.mjs} +112 -131
  7. package/dist/.setup/{approval-reactions-B9CJS0NT.mjs → approval-reactions-DBBsqbRC.mjs} +152 -72
  8. package/dist/.setup/{channel-6kcKpSRw.mjs → channel-CLaN4mQn.mjs} +142 -119
  9. package/dist/.setup/{channel.runtime-BW4A0m4h.mjs → channel.runtime-XJGx1MIH.mjs} +205 -363
  10. package/dist/.setup/chat-context-fTfJVqAi.mjs +77 -0
  11. package/dist/.setup/chat-lookup-xtPsOBkl.mjs +50 -0
  12. package/dist/.setup/client-D_BaG8sC.mjs +367 -0
  13. package/dist/.setup/{config-schema-DRkdRC21.mjs → config-schema-BjkQV5P5.mjs} +1 -2
  14. package/dist/.setup/{conversation-bindings-vZFn6sN2.mjs → conversation-bindings-8DjxoIYU.mjs} +9 -6
  15. package/dist/.setup/{media-contract-CoixpXRX.mjs → media-contract-BErFBKV9.mjs} +1 -1
  16. package/dist/.setup/{message-tool-api-CxSY_rh7.mjs → message-tool-api-DtZ1wKbT.mjs} +3 -6
  17. package/dist/.setup/{remote-file-CCgMYZ-u.mjs → remote-file-DpK3GQFD.mjs} +8 -22
  18. package/dist/.setup/{sanitize-outbound-C02fJrn6.mjs → sanitize-outbound-Dhjhz0a-.mjs} +23 -27
  19. package/dist/.setup/{send-D98hQFdv.mjs → send-DhEW0gfe.mjs} +150 -226
  20. package/dist/.setup/{setup-core-BWnW0czE.mjs → setup-core-B1_P_t4T.mjs} +2 -2
  21. package/dist/.setup/{setup-surface-aRZhAzzQ.mjs → setup-surface-CD28mXWK.mjs} +11 -25
  22. package/dist/.setup/{targets-CIx4BKqL.mjs → targets-C7CIWJ0k.mjs} +12 -3
  23. package/dist/.source-module-urls/929c518fa2986b0f85f66bceefead22868db0ab452dee914dc6a2bb86b2e60ad.json +1 -1
  24. package/dist/api.js +8 -8
  25. package/dist/channel-config-api.js +1 -1
  26. package/dist/channel-plugin-api.js +1 -1
  27. package/dist/contract-api.js +1 -1
  28. package/dist/media-contract-api.js +1 -1
  29. package/dist/message-tool-api.js +1 -1
  30. package/dist/runtime-api.js +1 -3
  31. package/dist/session-binding-contract-api.js +1 -1
  32. package/dist/setup-entry.js +1 -1
  33. package/dist/src/chat-db.worker.js +1 -1
  34. package/node_modules/typebox/build/format/duration.d.mts +2 -2
  35. package/node_modules/typebox/build/format/duration.mjs +2 -2
  36. package/node_modules/typebox/build/format/idn_email.d.mts +1 -0
  37. package/node_modules/typebox/build/format/idn_email.mjs +1 -0
  38. package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -1
  39. package/node_modules/typebox/build/format/idn_hostname.mjs +1 -1
  40. package/node_modules/typebox/build/format/ipv4.d.mts +2 -2
  41. package/node_modules/typebox/build/format/ipv4.mjs +2 -2
  42. package/node_modules/typebox/build/format/ipv6.d.mts +1 -1
  43. package/node_modules/typebox/build/format/ipv6.mjs +1 -1
  44. package/node_modules/typebox/build/format/relative_json_pointer.d.mts +2 -2
  45. package/node_modules/typebox/build/format/relative_json_pointer.mjs +2 -2
  46. package/node_modules/typebox/build/schema/build.mjs +1 -0
  47. package/node_modules/typebox/build/schema/engine/_unique.d.mts +4 -2
  48. package/node_modules/typebox/build/schema/engine/_unique.mjs +7 -3
  49. package/node_modules/typebox/build/schema/engine/additionalItems.mjs +3 -3
  50. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +0 -3
  51. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +15 -17
  52. package/node_modules/typebox/build/schema/engine/contains.mjs +3 -3
  53. package/node_modules/typebox/build/schema/engine/index.d.mts +1 -0
  54. package/node_modules/typebox/build/schema/engine/index.mjs +1 -0
  55. package/node_modules/typebox/build/schema/engine/items.mjs +7 -4
  56. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -2
  57. package/node_modules/typebox/build/schema/engine/minContains.mjs +3 -3
  58. package/node_modules/typebox/build/schema/engine/oneOf.mjs +2 -2
  59. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +2 -2
  60. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -2
  61. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +2 -2
  62. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +2 -2
  63. package/node_modules/typebox/build/system/hashing/hash.mjs +63 -34
  64. package/node_modules/typebox/build/system/locale/en_US.mjs +2 -1
  65. package/node_modules/typebox/build/system/memory/assign.d.mts +2 -8
  66. package/node_modules/typebox/build/system/memory/assign.mjs +13 -6
  67. package/node_modules/typebox/build/system/memory/clone.d.mts +4 -5
  68. package/node_modules/typebox/build/system/memory/clone.mjs +8 -96
  69. package/node_modules/typebox/build/system/memory/create.d.mts +1 -5
  70. package/node_modules/typebox/build/system/memory/create.mjs +18 -13
  71. package/node_modules/typebox/build/system/memory/deep.d.mts +2 -0
  72. package/node_modules/typebox/build/system/memory/deep.mjs +108 -0
  73. package/node_modules/typebox/build/system/memory/discard.d.mts +1 -1
  74. package/node_modules/typebox/build/system/memory/discard.mjs +9 -8
  75. package/node_modules/typebox/build/system/memory/finalize.d.mts +4 -0
  76. package/node_modules/typebox/build/system/memory/finalize.mjs +30 -0
  77. package/node_modules/typebox/build/system/memory/keys.d.mts +2 -0
  78. package/node_modules/typebox/build/system/memory/keys.mjs +8 -0
  79. package/node_modules/typebox/build/system/memory/update.d.mts +1 -4
  80. package/node_modules/typebox/build/system/memory/update.mjs +43 -16
  81. package/node_modules/typebox/build/type/engine/call/index.d.mts +1 -0
  82. package/node_modules/typebox/build/type/engine/call/index.mjs +1 -0
  83. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +2 -24
  84. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +2 -29
  85. package/node_modules/typebox/build/type/engine/evaluate/index.d.mts +1 -0
  86. package/node_modules/typebox/build/type/engine/evaluate/index.mjs +1 -0
  87. package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +5 -1
  88. package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +6 -1
  89. package/node_modules/typebox/build/type/engine/evaluate/property.d.mts +30 -0
  90. package/node_modules/typebox/build/type/engine/evaluate/property.mjs +29 -0
  91. package/node_modules/typebox/build/type/engine/immutable/instantiate_add.d.mts +1 -3
  92. package/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +1 -4
  93. package/node_modules/typebox/build/type/engine/object/from_intersect.d.mts +2 -2
  94. package/node_modules/typebox/build/type/engine/object/from_intersect.mjs +2 -2
  95. package/node_modules/typebox/build/type/engine/object/from_union.d.mts +2 -2
  96. package/node_modules/typebox/build/type/engine/object/from_union.mjs +2 -2
  97. package/node_modules/typebox/build/type/engine/optional/instantiate_add.d.mts +1 -3
  98. package/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +1 -4
  99. package/node_modules/typebox/build/type/engine/readonly/instantiate_add.d.mts +1 -3
  100. package/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +1 -4
  101. package/node_modules/typebox/build/type/engine/this/index.d.mts +1 -0
  102. package/node_modules/typebox/build/type/engine/this/index.mjs +1 -0
  103. package/node_modules/typebox/build/value/clone/clone.d.mts +4 -3
  104. package/node_modules/typebox/build/value/clone/clone.mjs +5 -7
  105. package/node_modules/typebox/build/value/repair/from_cyclic.d.mts +2 -0
  106. package/node_modules/typebox/build/value/repair/from_cyclic.mjs +6 -0
  107. package/node_modules/typebox/build/value/shared/union_priority_sort.mjs +25 -14
  108. package/node_modules/typebox/package.json +1 -1
  109. package/node_modules/typebox/readme.md +1 -1
  110. package/node_modules/zod/package.json +1 -1
  111. package/node_modules/zod/src/v4/classic/tests/array.test.ts +27 -0
  112. package/node_modules/zod/src/v4/classic/tests/map.test.ts +7 -0
  113. package/node_modules/zod/src/v4/classic/tests/set.test.ts +6 -0
  114. package/node_modules/zod/src/v4/core/compile.ts +9 -0
  115. package/node_modules/zod/src/v4/core/schemas.ts +35 -1
  116. package/node_modules/zod/src/v4/core/util.ts +13 -0
  117. package/node_modules/zod/src/v4/core/versions.ts +1 -1
  118. package/node_modules/zod/v4/core/compile.cjs +8 -0
  119. package/node_modules/zod/v4/core/compile.js +8 -0
  120. package/node_modules/zod/v4/core/schemas.cjs +30 -0
  121. package/node_modules/zod/v4/core/schemas.d.cts +3 -1
  122. package/node_modules/zod/v4/core/schemas.d.ts +3 -1
  123. package/node_modules/zod/v4/core/schemas.js +30 -0
  124. package/node_modules/zod/v4/core/util.cjs +15 -0
  125. package/node_modules/zod/v4/core/util.d.cts +2 -0
  126. package/node_modules/zod/v4/core/util.d.ts +2 -0
  127. package/node_modules/zod/v4/core/util.js +14 -0
  128. package/node_modules/zod/v4/core/versions.cjs +1 -1
  129. package/node_modules/zod/v4/core/versions.js +1 -1
  130. package/openclaw.plugin.json +0 -30
  131. package/package.json +6 -6
  132. package/dist/.setup/client-C3e7ZLqA.mjs +0 -739
  133. package/dist/.setup/question-reactions-DTj-VH3N.mjs +0 -67
  134. package/dist/.setup/reaction-context-Bw00FkmU.mjs +0 -105
  135. package/dist/.setup/runtime-BRQCPuAD.mjs +0 -7
  136. package/node_modules/typebox/build/system/memory/freeze.d.mts +0 -4
  137. package/node_modules/typebox/build/system/memory/freeze.mjs +0 -6
@@ -1,5 +1,5 @@
1
- import { o as resolveIMessageAccount } from "./accounts-BH0coL46.mjs";
2
- import { a as imessageCompletionNote, c as imessageSetupStatusBase, l as isAutoManagedIMessageCliPath, o as imessageDmPolicy, r as createIMessageCliPathTextInput, t as IMESSAGE_INSTALL_COMMAND, u as normalizeIMessageCliPathForSetup } from "./setup-core-BWnW0czE.mjs";
1
+ import { o as resolveIMessageAccount } from "./accounts-C1Ypv3Wn.mjs";
2
+ import { a as imessageCompletionNote, c as imessageSetupStatusBase, l as isAutoManagedIMessageCliPath, o as imessageDmPolicy, r as createIMessageCliPathTextInput, t as IMESSAGE_INSTALL_COMMAND, u as normalizeIMessageCliPathForSetup } from "./setup-core-B1_P_t4T.mjs";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs/promises";
5
5
  import { createDetectedBinaryStatus, setSetupChannelEnabled } from "openclaw/plugin-sdk/setup";
@@ -76,40 +76,26 @@ async function installIMessageCli(runtime, opts) {
76
76
  runtime.log("Keeping the detected imsg binary because Homebrew does not manage it.");
77
77
  return { ok: true };
78
78
  }
79
- const update = await runPluginCommandWithTimeout({
80
- argv: [brewExe, "update"],
81
- timeoutMs: 3e5
79
+ }
80
+ const commands = opts?.upgrade ? [["update"], ["upgrade", "imsg"]] : [["install", "steipete/tap/imsg"]];
81
+ for (const command of commands) {
82
+ const result = await runPluginCommandWithTimeout({
83
+ argv: [brewExe, ...command],
84
+ timeoutMs: (command[0] === "update" ? 5 : 15) * 6e4
82
85
  });
83
- if (update.code !== 0) return {
86
+ if (result.code !== 0) return {
84
87
  ok: false,
85
- error: `brew update failed (exit ${update.code}): ${truncateUtf16Safe(update.stderr.trim(), 200)}`
88
+ error: `brew ${command.join(" ")} failed (exit ${result.code}): ${truncateUtf16Safe(result.stderr.trim(), 200)}`
86
89
  };
87
90
  }
88
- const command = opts?.upgrade ? ["upgrade", "imsg"] : ["install", "steipete/tap/imsg"];
89
- const result = await runPluginCommandWithTimeout({
90
- argv: [brewExe, ...command],
91
- timeoutMs: 9e5
92
- });
93
- if (result.code !== 0) return {
94
- ok: false,
95
- error: `brew ${command.join(" ")} failed (exit ${result.code}): ${truncateUtf16Safe(result.stderr.trim(), 200)}`
96
- };
97
91
  const cliPath = await resolveBrewIMessageCliPath(brewExe);
98
92
  if (!cliPath) return {
99
93
  ok: false,
100
94
  error: "brew install succeeded but imsg binary was not found."
101
95
  };
102
- let version;
103
- try {
104
- version = (await runPluginCommandWithTimeout({
105
- argv: [cliPath, "--version"],
106
- timeoutMs: 1e4
107
- })).stdout.trim() || void 0;
108
- } catch {}
109
96
  return {
110
97
  ok: true,
111
- cliPath,
112
- version
98
+ cliPath
113
99
  };
114
100
  }
115
101
  // extensions/imessage/src/setup-surface.ts
@@ -141,8 +141,11 @@ function looksLikeIMessageExplicitTargetId(raw) {
141
141
  }
142
142
  function inferIMessageTargetChatType(raw) {
143
143
  try {
144
- if (parseIMessageTarget(raw).kind === "handle") return "direct";
145
- return "group";
144
+ const parsed = parseIMessageTarget(raw);
145
+ if (parsed.kind === "handle") return "direct";
146
+ const identifier = parsed.kind === "chat_guid" ? parsed.chatGuid : parsed.kind === "chat_identifier" ? parsed.chatIdentifier : "";
147
+ if (/^(?:imessage|sms|any);[-+];.+$/i.test(identifier)) return identifier.includes(";+;") ? "group" : "direct";
148
+ return;
146
149
  } catch {
147
150
  return;
148
151
  }
@@ -187,4 +190,10 @@ function formatIMessageChatTarget(chatId) {
187
190
  if (!chatId || !Number.isFinite(chatId)) return "";
188
191
  return `chat_id:${chatId}`;
189
192
  }
190
- export { looksLikeIMessageExplicitTargetId as a, parseIMessageTarget as c, normalizeIMessageMessagingTarget as d, isIMessagePhoneLikeHandle as f, isAllowedIMessageSender as i, IMESSAGE_CHAT_TARGET_PREFIX_RE as l, inferIMessageTargetChatType as n, normalizeIMessageHandle as o, isAllowedIMessageReplyContextSender as r, parseIMessageAllowTarget as s, formatIMessageChatTarget as t, looksLikeIMessageTargetId as u };
193
+ function iMessageTargetRpcParams(target) {
194
+ if (target.kind === "chat_id") return { chat_id: target.chatId };
195
+ if (target.kind === "chat_guid") return { chat_guid: target.chatGuid };
196
+ if (target.kind === "chat_identifier") return { chat_identifier: target.chatIdentifier };
197
+ return { to: target.to };
198
+ }
199
+ export { isAllowedIMessageSender as a, parseIMessageAllowTarget as c, looksLikeIMessageTargetId as d, normalizeIMessageMessagingTarget as f, isAllowedIMessageReplyContextSender as i, parseIMessageTarget as l, iMessageTargetRpcParams as n, looksLikeIMessageExplicitTargetId as o, isIMessagePhoneLikeHandle as p, inferIMessageTargetChatType as r, normalizeIMessageHandle as s, formatIMessageChatTarget as t, IMESSAGE_CHAT_TARGET_PREFIX_RE as u };
@@ -1 +1 @@
1
- {"version":3,"entries":[{"output":"api.js","source":"extensions/imessage/api.ts"},{"output":"channel-config-api.js","source":"extensions/imessage/channel-config-api.ts"},{"output":"channel-plugin-api.js","source":"extensions/imessage/channel-plugin-api.ts"},{"output":"contract-api.js","source":"extensions/imessage/contract-api.ts"},{"output":"doctor-contract-api.js","source":"extensions/imessage/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/imessage/index.ts"},{"output":"media-contract-api.js","source":"extensions/imessage/media-contract-api.ts"},{"output":"message-tool-api.js","source":"extensions/imessage/message-tool-api.ts"},{"output":"runtime-api.js","source":"extensions/imessage/runtime-api.ts"},{"output":"secret-contract-api.js","source":"extensions/imessage/secret-contract-api.ts"},{"output":"session-binding-contract-api.js","source":"extensions/imessage/session-binding-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/imessage/setup-entry.ts"},{"output":"src/chat-db.worker.js","source":"extensions/imessage/src/chat-db.worker.ts"}],"chunks":[{"output":".setup/accounts-BH0coL46.mjs","sha256":"3d3a95861f02157e10959e531084678dbf3e084e62e0eb588bbf9e893bef0910","facadeSource":null,"sources":["extensions/imessage/src/accounts.ts","extensions/imessage/src/cli-path.ts","extensions/imessage/src/remote-host.ts"]},{"output":".setup/actions-CW7XYYF4.mjs","sha256":"57302e8e72b5b972a111b4f2b9b893262836d17d606805a256037af124706a5b","facadeSource":null,"sources":["extensions/imessage/src/actions.ts","extensions/imessage/src/message-action-reference.ts","extensions/imessage/src/message-guid.ts","extensions/imessage/src/probe.ts"]},{"output":".setup/actions.runtime-B2ZHQ3TJ.mjs","sha256":"ffa16f4aa9d4cd430715ba1fb57da7dc04f92336e1cb75775d24aa9846f4d520","facadeSource":"extensions/imessage/src/actions.runtime.ts","sources":["extensions/imessage/src/actions-chat-guid.ts","extensions/imessage/src/actions-transport.ts","extensions/imessage/src/actions.runtime.ts"]},{"output":".setup/api-6xi-NBrt.mjs","sha256":"6a059097cb1a0fe7991c680e17f40e0269e73fb7d145239df1cadc9e6311733e","facadeSource":null,"sources":["extensions/imessage/src/channel.setup.ts"]},{"output":".setup/api-B0ih8Iof.mjs","sha256":"45789fb9fd83094cecf5cc9738b841326d18ae1611aadc583382298993a5ac07","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":".setup/approval-handler.runtime-BKmqba3L.mjs","sha256":"1e1bd107b8241bfe9e61d4370b398392293a61edba51864192bd090694ec7224","facadeSource":"extensions/imessage/src/approval-handler.runtime.ts","sources":["extensions/imessage/src/approval-handler.runtime.ts"]},{"output":".setup/approval-reactions-B9CJS0NT.mjs","sha256":"16e0cbe21ce32f99d04882559a57a7706b18f936d8f25609fca0d5d2fb9d89ec","facadeSource":null,"sources":["extensions/imessage/src/approval-reaction-poll-targets.ts","extensions/imessage/src/approval-reactions.ts","extensions/imessage/src/approval-target-keys.ts"]},{"output":".setup/channel-6kcKpSRw.mjs","sha256":"f19d3bcb6c71cc1a204d40264d6be014e0c09161984d36a5e3568413030e5eb9","facadeSource":null,"sources":["extensions/imessage/src/approval-auth.ts","extensions/imessage/src/approval-native.ts","extensions/imessage/src/approval-text.ts","extensions/imessage/src/channel.ts","extensions/imessage/src/conversation-id-core.ts","extensions/imessage/src/conversation-id.ts","extensions/imessage/src/doctor.ts","extensions/imessage/src/group-policy.ts","extensions/imessage/src/shared.ts"]},{"output":".setup/channel.runtime-BW4A0m4h.mjs","sha256":"75cebfee1133be34062e38b1f40679c2ada7954d2bc9da63867b4002df01efa1","facadeSource":"extensions/imessage/src/channel.runtime.ts","sources":["extensions/imessage/src/approval-reaction-poller.ts","extensions/imessage/src/channel.runtime.ts","extensions/imessage/src/chat.ts","extensions/imessage/src/conversation-route.ts","extensions/imessage/src/monitor/abort-handler.ts","extensions/imessage/src/monitor/catchup-bridge.ts","extensions/imessage/src/monitor/catchup.ts","extensions/imessage/src/monitor/coalesce.ts","extensions/imessage/src/monitor/conversation-repair.ts","extensions/imessage/src/monitor/deliver.ts","extensions/imessage/src/monitor/dm-history.ts","extensions/imessage/src/monitor/drop-diagnostic-cache.ts","extensions/imessage/src/monitor/echo-cache.ts","extensions/imessage/src/monitor/group-allowlist-warnings.ts","extensions/imessage/src/monitor/inbound-dedupe.ts","extensions/imessage/src/monitor/inbound-processing.ts","extensions/imessage/src/monitor/ingress.ts","extensions/imessage/src/monitor/loop-rate-limiter.ts","extensions/imessage/src/monitor/media-staging.ts","extensions/imessage/src/monitor/mention-policy.ts","extensions/imessage/src/monitor/monitor-provider.ts","extensions/imessage/src/monitor/parse-notification.ts","extensions/imessage/src/monitor/poll-comment.ts","extensions/imessage/src/monitor/poll-render.ts","extensions/imessage/src/monitor/reaction-system-event.ts","extensions/imessage/src/monitor/recovery-cursor.ts","extensions/imessage/src/monitor/reflection-guard.ts","extensions/imessage/src/monitor/self-chat-cache.ts","extensions/imessage/src/monitor/strip-imsg-length-prefixed-text.ts","extensions/imessage/src/monitor/watch-error-log.ts","src/channels/mention-gating.ts"]},{"output":".setup/client-C3e7ZLqA.mjs","sha256":"f965627433495be9225b6ab97ccdaf2e36aa20a9a54e63233068a205b85ff270","facadeSource":null,"sources":["extensions/imessage/src/bridge-recovery.ts","extensions/imessage/src/chat-context.ts","extensions/imessage/src/cli-output.ts","extensions/imessage/src/client.ts","extensions/imessage/src/constants.ts","extensions/imessage/src/monitor-reply-cache.ts","extensions/imessage/src/state-contract.ts"]},{"output":".setup/config-schema-DRkdRC21.mjs","sha256":"758a3d4a6eff932ccc536a60da0f338b4608d6d0e02e5e7ea1994719a648dcc2","facadeSource":null,"sources":["extensions/imessage/src/config-schema.ts","extensions/imessage/src/config-ui-hints.ts"]},{"output":".setup/conversation-bindings-vZFn6sN2.mjs","sha256":"8b47df14a6b3d90dec4812a1cf971f72825fdcb9bb642dd94e247de63298d943","facadeSource":null,"sources":["extensions/imessage/src/conversation-bindings.ts"]},{"output":".setup/media-contract-CoixpXRX.mjs","sha256":"edf68fa0002fb3c11e28318a274422b7ff7902bc5f6937d4438f93c36a7bf5cb","facadeSource":null,"sources":["extensions/imessage/src/media-contract.ts"]},{"output":".setup/message-tool-api-CxSY_rh7.mjs","sha256":"194ae5f7aea08cdc0772597ef129d08b02d9f0b1e03932a800819eb824315f1e","facadeSource":null,"sources":["extensions/imessage/src/actions-contract.ts","extensions/imessage/src/message-tool-api.ts","extensions/imessage/src/private-api-status.ts"]},{"output":".setup/outbound-send-deps-_da8jqeo.mjs","sha256":"0635bb28f7b137bbf61e085d3470d925c60d6057c0a4e67282546a70d2ec6341","facadeSource":null,"sources":["extensions/imessage/src/outbound-send-deps.ts"]},{"output":".setup/question-reactions-DTj-VH3N.mjs","sha256":"540778353803526006a920bf292efb7e172f7bb8bfdfe2614be349993073494c","facadeSource":null,"sources":["extensions/imessage/src/question-reactions.ts"]},{"output":".setup/reaction-context-Bw00FkmU.mjs","sha256":"6364fad7355a5bcce217a8596203f29ed8a789a63be4230ee1ba644bad3b6d9f","facadeSource":null,"sources":["extensions/imessage/src/monitor/reaction-context.ts"]},{"output":".setup/remote-file-CCgMYZ-u.mjs","sha256":"851cc7fb12e5fb18033a0aeb5e245a4a862044dde39a0018355a549894807dd2","facadeSource":null,"sources":["extensions/imessage/src/chat-db.ts","extensions/imessage/src/message-resource-db.ts","extensions/imessage/src/message-resource.ts","extensions/imessage/src/remote-file.ts"]},{"output":".setup/rolldown-runtime-782esTHO.mjs","sha256":"5ee95aea427a7c3b63d18f4d901f7c824b836077e85aee06ae7d598c1974e2a6","facadeSource":null,"sources":[]},{"output":".setup/runtime-BRQCPuAD.mjs","sha256":"7cd8a481a241c3ffbe6a21ca6bad5c58418b0d4f36a710738b34611559bb384e","facadeSource":null,"sources":["extensions/imessage/src/runtime.ts"]},{"output":".setup/sanitize-outbound-C02fJrn6.mjs","sha256":"f158f744cf9b677e2664bca61a83455ada01a67b113af783278e4a0e57e9eace","facadeSource":null,"sources":["extensions/imessage/src/markdown-format.ts","extensions/imessage/src/monitor/sanitize-outbound.ts"]},{"output":".setup/send-D98hQFdv.mjs","sha256":"bd04afe09bc720540f0b7bc5b665830382f47a88c22d2b9bfd7541d2c1fe309d","facadeSource":null,"sources":["extensions/imessage/src/approval-polls.ts","extensions/imessage/src/monitor/echo-text-corruption.ts","extensions/imessage/src/monitor/persisted-echo-cache.ts","extensions/imessage/src/send-transport.ts","extensions/imessage/src/send.ts"]},{"output":".setup/setup-core-BWnW0czE.mjs","sha256":"72aec986e4a413ca891c37d67b29a5d953bb0800dd9ad28c1c255b67dfa25ebc","facadeSource":null,"sources":["extensions/imessage/src/setup-core.ts"]},{"output":".setup/setup-surface-aRZhAzzQ.mjs","sha256":"d7665d3c25ac3e4b184f7639246ac26e8c1a3c94afb47ec34132d799736743ef","facadeSource":"extensions/imessage/src/setup-surface.ts","sources":["extensions/imessage/src/install-imsg.ts","extensions/imessage/src/setup-surface.ts"]},{"output":".setup/targets-CIx4BKqL.mjs","sha256":"7c27b2a688288ca7889fd597eecaf9c3f992f5945b9edc7862d4384d0d456d78","facadeSource":null,"sources":["extensions/imessage/src/normalize.ts","extensions/imessage/src/target-identifiers.ts","extensions/imessage/src/targets.ts"]},{"output":"api.js","sha256":"0e35c62f018c982cd041074df55154a7085268cb53ab3a01e5e9adcbd2c62e21","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"d1ff3745e8e128801438000b659a374343a9957296644d063b1e43cc6cb1da4e","facadeSource":"extensions/imessage/channel-config-api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"2d9fc032675ca9039675862bb248da4b83b98f9e6731523d669b9593563d341f","facadeSource":"extensions/imessage/channel-plugin-api.ts","sources":[]},{"output":"contract-api.js","sha256":"c7d2cf6c04e05d4ecd00a81b59ea70a3a06a0eeb422ae59af6d379cb91813d04","facadeSource":"extensions/imessage/contract-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"a9cbc5e727b821983de78d1bdf9b863859b14c86a1c6b8f70fd7b05b9547f36a","facadeSource":"extensions/imessage/doctor-contract-api.ts","sources":["extensions/imessage/config-doctor-api.ts","extensions/imessage/doctor-contract-api.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":"index.js","sha256":"e3fcf6fd886eaf196d9e38f504ba3cbc46345d5c21c86c1090dea834b3020ce4","facadeSource":"extensions/imessage/index.ts","sources":["extensions/imessage/index.ts"]},{"output":"media-contract-api.js","sha256":"849952bc416cd8ff2cbf658ea635bc89c40baae72f5730a063d3a9e20c847b81","facadeSource":"extensions/imessage/media-contract-api.ts","sources":[]},{"output":"message-tool-api.js","sha256":"d1eeccc3d9c13e88c6bf665c22133ff9e7fc8eb973a6a250396b37c087f1c724","facadeSource":"extensions/imessage/message-tool-api.ts","sources":[]},{"output":"runtime-api.js","sha256":"b7f190944cbbf44698a58da859f53ff3b92285416ea62de2d369609623846e20","facadeSource":"extensions/imessage/runtime-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"5a5d910629d837d8176ce71f084a37ea874acef6d27935d5a8ec2d9d855a83db","facadeSource":"extensions/imessage/secret-contract-api.ts","sources":["extensions/imessage/secret-contract-api.ts"]},{"output":"session-binding-contract-api.js","sha256":"01a67d0e9e4d6509375b44b407157bf99d81731f80a6eb6edd2cf0a32e344317","facadeSource":"extensions/imessage/session-binding-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"76b8bdb2ad750e8eb958fb8ec3d4d562b2daa2164ec8de1937774f24e3cadb10","facadeSource":"extensions/imessage/setup-entry.ts","sources":["extensions/imessage/setup-entry.ts"]},{"output":"src/chat-db.worker.js","sha256":"35a50828aa3ad3704dd0edccece494e156ff211293dc7dbe09474df88ce59d63","facadeSource":"extensions/imessage/src/chat-db.worker.ts","sources":["extensions/imessage/src/chat-db.worker.ts"]}],"unrenderedSources":["extensions/imessage/api.ts","extensions/imessage/channel-config-api.ts","extensions/imessage/channel-plugin-api.ts","extensions/imessage/contract-api.ts","extensions/imessage/media-contract-api.ts","extensions/imessage/message-tool-api.ts","extensions/imessage/runtime-api.ts","extensions/imessage/session-binding-contract-api.ts","extensions/imessage/src/monitor.ts"]}
1
+ {"version":3,"entries":[{"output":"api.js","source":"extensions/imessage/api.ts"},{"output":"channel-config-api.js","source":"extensions/imessage/channel-config-api.ts"},{"output":"channel-plugin-api.js","source":"extensions/imessage/channel-plugin-api.ts"},{"output":"contract-api.js","source":"extensions/imessage/contract-api.ts"},{"output":"doctor-contract-api.js","source":"extensions/imessage/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/imessage/index.ts"},{"output":"media-contract-api.js","source":"extensions/imessage/media-contract-api.ts"},{"output":"message-tool-api.js","source":"extensions/imessage/message-tool-api.ts"},{"output":"runtime-api.js","source":"extensions/imessage/runtime-api.ts"},{"output":"secret-contract-api.js","source":"extensions/imessage/secret-contract-api.ts"},{"output":"session-binding-contract-api.js","source":"extensions/imessage/session-binding-contract-api.ts"},{"output":"setup-entry.js","source":"extensions/imessage/setup-entry.ts"},{"output":"src/chat-db.worker.js","source":"extensions/imessage/src/chat-db.worker.ts"}],"chunks":[{"output":".setup/accounts-C1Ypv3Wn.mjs","sha256":"5348684b7bd48227952801dd9fa406ddb0ae377e157ef913ff0f6f6f285ef787","facadeSource":null,"sources":["extensions/imessage/src/accounts.ts","extensions/imessage/src/cli-path.ts","extensions/imessage/src/remote-host.ts"]},{"output":".setup/actions-qOuKy8To.mjs","sha256":"d9d759e1c328c6fe90326be23b187fbbf3f3d3bbd3d72292e630f3a1913cb609","facadeSource":null,"sources":["extensions/imessage/src/actions.ts","extensions/imessage/src/message-action-reference.ts","extensions/imessage/src/message-guid.ts","extensions/imessage/src/monitor-reply-cache.ts","extensions/imessage/src/persistence-failure.ts","extensions/imessage/src/probe.ts","extensions/imessage/src/runtime.ts","extensions/imessage/src/state-contract.ts"]},{"output":".setup/actions.runtime-Ccg9CARL.mjs","sha256":"5f49e470f08709cabc4e99252e6641acfe69bfd31724abb6102587b886f34fcb","facadeSource":"extensions/imessage/src/actions.runtime.ts","sources":["extensions/imessage/src/actions-transport.ts","extensions/imessage/src/actions.runtime.ts"]},{"output":".setup/api-BXXuQQCS.mjs","sha256":"53bea920a5723924b898362830241739f1c041d09cf1bf7080635e7a0f297a1e","facadeSource":null,"sources":["extensions/imessage/src/channel.setup.ts"]},{"output":".setup/api-DTbxSOPc.mjs","sha256":"58dcc2900f6e01cf027d42b0231eddfa6a6a1f355770f647782c6c7b1315d7b6","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":".setup/approval-handler.runtime-B6vrFfZx.mjs","sha256":"607f7b5c30fc09b01c5743fa0e4462e596da80620a1b083a0d20b33f66b0142c","facadeSource":"extensions/imessage/src/approval-handler.runtime.ts","sources":["extensions/imessage/src/approval-handler.runtime.ts"]},{"output":".setup/approval-reactions-DBBsqbRC.mjs","sha256":"a3cdad40d3682d7c08e736b6bae8ddcb61ce45033d63f6f8e9ca39b4a5b5d4a5","facadeSource":null,"sources":["extensions/imessage/src/approval-reaction-poll-targets.ts","extensions/imessage/src/approval-reactions.ts","extensions/imessage/src/approval-target-keys.ts","extensions/imessage/src/monitor/reaction-context.ts"]},{"output":".setup/channel-CLaN4mQn.mjs","sha256":"3cf6112d66b57370a699374d141d19d671caf1b7f22fdcd026e83fddb5791a5f","facadeSource":null,"sources":["extensions/imessage/src/approval-auth.ts","extensions/imessage/src/approval-native.ts","extensions/imessage/src/approval-text.ts","extensions/imessage/src/channel.ts","extensions/imessage/src/conversation-id-core.ts","extensions/imessage/src/conversation-id.ts","extensions/imessage/src/doctor.ts","extensions/imessage/src/group-policy.ts","extensions/imessage/src/shared.ts"]},{"output":".setup/channel.runtime-XJGx1MIH.mjs","sha256":"331629b0e2f755b8eda1a55f6565f4ade51c5e4261992b2de4c9c7fe961653fb","facadeSource":"extensions/imessage/src/channel.runtime.ts","sources":["extensions/imessage/src/approval-reaction-poller.ts","extensions/imessage/src/channel.runtime.ts","extensions/imessage/src/chat.ts","extensions/imessage/src/conversation-route.ts","extensions/imessage/src/monitor/abort-handler.ts","extensions/imessage/src/monitor/catchup-bridge.ts","extensions/imessage/src/monitor/catchup.ts","extensions/imessage/src/monitor/coalesce.ts","extensions/imessage/src/monitor/conversation-repair.ts","extensions/imessage/src/monitor/deliver.ts","extensions/imessage/src/monitor/dm-history.ts","extensions/imessage/src/monitor/echo-cache.ts","extensions/imessage/src/monitor/group-allowlist-warnings.ts","extensions/imessage/src/monitor/inbound-dedupe.ts","extensions/imessage/src/monitor/inbound-processing.ts","extensions/imessage/src/monitor/ingress.ts","extensions/imessage/src/monitor/loop-rate-limiter.ts","extensions/imessage/src/monitor/media-staging.ts","extensions/imessage/src/monitor/mention-policy.ts","extensions/imessage/src/monitor/monitor-provider.ts","extensions/imessage/src/monitor/parse-notification.ts","extensions/imessage/src/monitor/poll-comment.ts","extensions/imessage/src/monitor/poll-render.ts","extensions/imessage/src/monitor/reaction-system-event.ts","extensions/imessage/src/monitor/recovery-cursor.ts","extensions/imessage/src/monitor/reflection-guard.ts","extensions/imessage/src/monitor/self-chat-cache.ts","extensions/imessage/src/monitor/strip-imsg-length-prefixed-text.ts","extensions/imessage/src/monitor/watch-error-log.ts","src/channels/mention-gating.ts"]},{"output":".setup/chat-context-fTfJVqAi.mjs","sha256":"74ad6e4e6c6c0ccf50a25987bb2c7ec6ff18adf6d55dfcc1c03e38acc8129f24","facadeSource":null,"sources":["extensions/imessage/src/chat-context.ts"]},{"output":".setup/chat-lookup-xtPsOBkl.mjs","sha256":"cb05322b31b0b65b8388fb06253d0c126858cf4a5d8009eeb71f0349743c6242","facadeSource":"extensions/imessage/src/chat-lookup.ts","sources":["extensions/imessage/src/chat-lookup.ts"]},{"output":".setup/client-D_BaG8sC.mjs","sha256":"31c80631d65b37b2720fb54106f2aca3c8b4d3f2c3c9c13e70f8a60258acef00","facadeSource":null,"sources":["extensions/imessage/src/bridge-recovery.ts","extensions/imessage/src/cli-output.ts","extensions/imessage/src/client.ts","extensions/imessage/src/constants.ts","extensions/imessage/src/process-diagnostics.ts"]},{"output":".setup/config-schema-BjkQV5P5.mjs","sha256":"7d20af2d3d949a6370d02f8c8964648a0c8750d992ab8ac5ddc7b73d0af259a7","facadeSource":null,"sources":["extensions/imessage/src/config-schema.ts"]},{"output":".setup/conversation-bindings-8DjxoIYU.mjs","sha256":"53378cae522f21919cddcb0c2e609cf470679d95c23e01279461052b29805ab8","facadeSource":null,"sources":["extensions/imessage/src/conversation-bindings.ts"]},{"output":".setup/media-contract-BErFBKV9.mjs","sha256":"d2fad4cac6fe8ccb4d8b956747b83ac49ffb9e93853f3c16b3e6d7348e482ccf","facadeSource":null,"sources":["extensions/imessage/src/media-contract.ts"]},{"output":".setup/message-tool-api-DtZ1wKbT.mjs","sha256":"801ceb5b2a6a9aa8582de81373e1154c017b9c68f040590026f825abc9ccee49","facadeSource":null,"sources":["extensions/imessage/src/actions-contract.ts","extensions/imessage/src/message-tool-api.ts","extensions/imessage/src/private-api-status.ts"]},{"output":".setup/outbound-send-deps-_da8jqeo.mjs","sha256":"0635bb28f7b137bbf61e085d3470d925c60d6057c0a4e67282546a70d2ec6341","facadeSource":null,"sources":["extensions/imessage/src/outbound-send-deps.ts"]},{"output":".setup/remote-file-DpK3GQFD.mjs","sha256":"66ba039966bcee9c6548d217de01890bfeb520752b95c2174b194ac433a66aab","facadeSource":null,"sources":["extensions/imessage/src/chat-db.ts","extensions/imessage/src/message-resource-db.ts","extensions/imessage/src/message-resource.ts","extensions/imessage/src/remote-file.ts"]},{"output":".setup/rolldown-runtime-782esTHO.mjs","sha256":"5ee95aea427a7c3b63d18f4d901f7c824b836077e85aee06ae7d598c1974e2a6","facadeSource":null,"sources":[]},{"output":".setup/sanitize-outbound-Dhjhz0a-.mjs","sha256":"95abecb11bdfb27953ea6a1e9e39e53fd6b872742ad24a8e12f84b618a359a7d","facadeSource":null,"sources":["extensions/imessage/src/markdown-format.ts","extensions/imessage/src/monitor/sanitize-outbound.ts"]},{"output":".setup/send-DhEW0gfe.mjs","sha256":"fe99723226168c829714bb22599c2d05a19b3e996349b3b53bc2ff4e7a2307c3","facadeSource":null,"sources":["extensions/imessage/src/approval-polls.ts","extensions/imessage/src/monitor/echo-text-corruption.ts","extensions/imessage/src/monitor/persisted-echo-cache.ts","extensions/imessage/src/send-transport.ts","extensions/imessage/src/send.ts"]},{"output":".setup/setup-core-B1_P_t4T.mjs","sha256":"817f8646f06df175a9d53ef184a1d8a52800d2a8f4e58a26b9ca75dd3b50aa6a","facadeSource":null,"sources":["extensions/imessage/src/setup-core.ts"]},{"output":".setup/setup-surface-CD28mXWK.mjs","sha256":"f1252e92455d1f111311536d42e9c1b43bd5ecdc1bee0f0af4821c05572ec57d","facadeSource":"extensions/imessage/src/setup-surface.ts","sources":["extensions/imessage/src/install-imsg.ts","extensions/imessage/src/setup-surface.ts"]},{"output":".setup/targets-C7CIWJ0k.mjs","sha256":"d8c0c1bf41f07a98ffd113ad1de1fc4f873075eba6c58ae8b74640d9af2278aa","facadeSource":null,"sources":["extensions/imessage/src/normalize.ts","extensions/imessage/src/target-identifiers.ts","extensions/imessage/src/targets.ts"]},{"output":"api.js","sha256":"03b16f792a3bc73533a26519088a0b4190d05067f08cd67e0b89c62ddeccc8a5","facadeSource":"extensions/imessage/api.ts","sources":[]},{"output":"channel-config-api.js","sha256":"2d6b2a7d6d5c87b569dd485730e4f1ef7e3393645ea183acae598cdad80e6c30","facadeSource":"extensions/imessage/channel-config-api.ts","sources":[]},{"output":"channel-plugin-api.js","sha256":"b28a5974f37b686e32895b61857594dc4760efb8a8ac7c96fc3070d66f9ca508","facadeSource":"extensions/imessage/channel-plugin-api.ts","sources":[]},{"output":"contract-api.js","sha256":"6c6d1ad635b8129db0d9db360d6cfa0b962e3d67892bbb20de378db99d4dcab3","facadeSource":"extensions/imessage/contract-api.ts","sources":[]},{"output":"doctor-contract-api.js","sha256":"a9cbc5e727b821983de78d1bdf9b863859b14c86a1c6b8f70fd7b05b9547f36a","facadeSource":"extensions/imessage/doctor-contract-api.ts","sources":["extensions/imessage/config-doctor-api.ts","extensions/imessage/doctor-contract-api.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":"index.js","sha256":"e3fcf6fd886eaf196d9e38f504ba3cbc46345d5c21c86c1090dea834b3020ce4","facadeSource":"extensions/imessage/index.ts","sources":["extensions/imessage/index.ts"]},{"output":"media-contract-api.js","sha256":"893382965120344a612575189cd08ffa5a021f1a345c9d4e96c1d2e8e22332c5","facadeSource":"extensions/imessage/media-contract-api.ts","sources":[]},{"output":"message-tool-api.js","sha256":"28c4c0f3612e1aa899b100997f7fed7898f50c0f9d6b9d2145bfebc412d547a7","facadeSource":"extensions/imessage/message-tool-api.ts","sources":[]},{"output":"runtime-api.js","sha256":"e82084d4c478e4fa9d0942dc2bd05aef5c3a9cc6aefed8c6ffb5c5ef2ec19334","facadeSource":"extensions/imessage/runtime-api.ts","sources":[]},{"output":"secret-contract-api.js","sha256":"5a5d910629d837d8176ce71f084a37ea874acef6d27935d5a8ec2d9d855a83db","facadeSource":"extensions/imessage/secret-contract-api.ts","sources":["extensions/imessage/secret-contract-api.ts"]},{"output":"session-binding-contract-api.js","sha256":"ee6a8d03e2272b04d1a71d825ed19758b2ebabaacae5ec1afa32aa2613eb0986","facadeSource":"extensions/imessage/session-binding-contract-api.ts","sources":[]},{"output":"setup-entry.js","sha256":"a84e6b5887f21a08fef4149f9f0b737e408de73d2ac83cabf9c2f14102751efd","facadeSource":"extensions/imessage/setup-entry.ts","sources":["extensions/imessage/setup-entry.ts"]},{"output":"src/chat-db.worker.js","sha256":"2796c8742ae30e289c310f1bfaf9dd6afca6d7b61f4e45249dbf79b62e9063a9","facadeSource":"extensions/imessage/src/chat-db.worker.ts","sources":["extensions/imessage/src/chat-db.worker.ts"]}],"unrenderedSources":["extensions/imessage/api.ts","extensions/imessage/channel-config-api.ts","extensions/imessage/channel-plugin-api.ts","extensions/imessage/contract-api.ts","extensions/imessage/media-contract-api.ts","extensions/imessage/message-tool-api.ts","extensions/imessage/runtime-api.ts","extensions/imessage/session-binding-contract-api.ts"]}
package/dist/api.js CHANGED
@@ -1,10 +1,10 @@
1
- import { a as looksLikeIMessageExplicitTargetId, c as parseIMessageTarget, d as normalizeIMessageMessagingTarget, i as isAllowedIMessageSender, n as inferIMessageTargetChatType, o as normalizeIMessageHandle, s as parseIMessageAllowTarget, t as formatIMessageChatTarget, u as looksLikeIMessageTargetId } from "./.setup/targets-CIx4BKqL.mjs";
2
- import { a as resolveDefaultIMessageAccountId, i as listIMessageAccountIds, o as resolveIMessageAccount, r as listEnabledIMessageAccounts } from "./.setup/accounts-BH0coL46.mjs";
3
- import { o as IMESSAGE_ACTIONS, s as IMESSAGE_ACTION_NAMES } from "./.setup/message-tool-api-CxSY_rh7.mjs";
4
- import { _ as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS } from "./.setup/client-C3e7ZLqA.mjs";
5
- import { n as probeIMessage } from "./.setup/actions-CW7XYYF4.mjs";
6
- import { c as matchIMessageAcpConversation, i as resolveIMessageGroupRequireMention, l as normalizeIMessageAcpConversationId, o as resolveIMessageGroupToolPolicy, s as resolveIMessageInboundConversationId, t as imessagePlugin, u as resolveIMessageConversationIdFromTarget } from "./.setup/channel-6kcKpSRw.mjs";
7
- import { n as createIMessageConversationBindingManagerV2, t as createIMessageConversationBindingManager } from "./.setup/conversation-bindings-vZFn6sN2.mjs";
8
- import { a as resolveServicePrefixedChatTarget, c as imessageSetupPlugin, i as resolveServicePrefixedAllowTarget, n as parseChatAllowTargetPrefixes, o as resolveServicePrefixedOrChatAllowTarget, r as parseChatTargetPrefixesOrThrow, s as resolveServicePrefixedTarget, t as createAllowedChatSenderMatcher } from "./.setup/api-6xi-NBrt.mjs";
1
+ import { a as isAllowedIMessageSender, c as parseIMessageAllowTarget, d as looksLikeIMessageTargetId, f as normalizeIMessageMessagingTarget, l as parseIMessageTarget, o as looksLikeIMessageExplicitTargetId, r as inferIMessageTargetChatType, s as normalizeIMessageHandle, t as formatIMessageChatTarget } from "./.setup/targets-C7CIWJ0k.mjs";
2
+ import { a as resolveDefaultIMessageAccountId, i as listIMessageAccountIds, o as resolveIMessageAccount, r as listEnabledIMessageAccounts } from "./.setup/accounts-C1Ypv3Wn.mjs";
3
+ import { o as IMESSAGE_ACTIONS, s as IMESSAGE_ACTION_NAMES } from "./.setup/message-tool-api-DtZ1wKbT.mjs";
4
+ import { a as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS } from "./.setup/client-D_BaG8sC.mjs";
5
+ import { n as probeIMessage } from "./.setup/actions-qOuKy8To.mjs";
6
+ import { c as matchIMessageAcpConversation, i as resolveIMessageGroupRequireMention, l as normalizeIMessageAcpConversationId, o as resolveIMessageGroupToolPolicy, s as resolveIMessageInboundConversationId, t as imessagePlugin, u as resolveIMessageConversationIdFromTarget } from "./.setup/channel-CLaN4mQn.mjs";
7
+ import { n as createIMessageConversationBindingManagerV2, t as createIMessageConversationBindingManager } from "./.setup/conversation-bindings-8DjxoIYU.mjs";
8
+ import { a as resolveServicePrefixedChatTarget, c as imessageSetupPlugin, i as resolveServicePrefixedAllowTarget, n as parseChatAllowTargetPrefixes, o as resolveServicePrefixedOrChatAllowTarget, r as parseChatTargetPrefixesOrThrow, s as resolveServicePrefixedTarget, t as createAllowedChatSenderMatcher } from "./.setup/api-BXXuQQCS.mjs";
9
9
  import { t as IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./.setup/outbound-send-deps-_da8jqeo.mjs";
10
10
  export { DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, IMESSAGE_ACTIONS, IMESSAGE_ACTION_NAMES, IMESSAGE_LEGACY_OUTBOUND_SEND_DEP_KEYS, createAllowedChatSenderMatcher, createIMessageConversationBindingManager, createIMessageConversationBindingManagerV2, formatIMessageChatTarget, imessagePlugin, imessageSetupPlugin, inferIMessageTargetChatType, isAllowedIMessageSender, listEnabledIMessageAccounts, listIMessageAccountIds, looksLikeIMessageExplicitTargetId, looksLikeIMessageTargetId, matchIMessageAcpConversation, normalizeIMessageAcpConversationId, normalizeIMessageHandle, normalizeIMessageMessagingTarget, parseChatAllowTargetPrefixes, parseChatTargetPrefixesOrThrow, parseIMessageAllowTarget, parseIMessageTarget, probeIMessage, resolveDefaultIMessageAccountId, resolveIMessageAccount, resolveIMessageConversationIdFromTarget, resolveIMessageGroupRequireMention, resolveIMessageGroupToolPolicy, resolveIMessageInboundConversationId, resolveServicePrefixedAllowTarget, resolveServicePrefixedChatTarget, resolveServicePrefixedOrChatAllowTarget, resolveServicePrefixedTarget };
@@ -1 +1 @@
1
- export { t as IMessageChannelConfigSchema } from "./.setup/config-schema-DRkdRC21.mjs";
1
+ export { t as IMessageChannelConfigSchema } from "./.setup/config-schema-BjkQV5P5.mjs";
@@ -1 +1 @@
1
- export { t as imessagePlugin } from "./.setup/channel-6kcKpSRw.mjs";
1
+ export { t as imessagePlugin } from "./.setup/channel-CLaN4mQn.mjs";
@@ -1,2 +1,2 @@
1
- export { t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, n as resolveIMessageAttachmentRoots, n as resolveInboundAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, r as resolveRemoteInboundAttachmentRoots } from "./.setup/media-contract-CoixpXRX.mjs";
1
+ export { t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, n as resolveIMessageAttachmentRoots, n as resolveInboundAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, r as resolveRemoteInboundAttachmentRoots } from "./.setup/media-contract-BErFBKV9.mjs";
2
2
  import "./media-contract-api.js";
@@ -1 +1 @@
1
- export { t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, n as resolveIMessageAttachmentRoots, n as resolveInboundAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, r as resolveRemoteInboundAttachmentRoots } from "./.setup/media-contract-CoixpXRX.mjs";
1
+ export { t as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, n as resolveIMessageAttachmentRoots, n as resolveInboundAttachmentRoots, r as resolveIMessageRemoteAttachmentRoots, r as resolveRemoteInboundAttachmentRoots } from "./.setup/media-contract-BErFBKV9.mjs";
@@ -1 +1 @@
1
- export { t as describeMessageTool } from "./.setup/message-tool-api-CxSY_rh7.mjs";
1
+ export { t as describeMessageTool } from "./.setup/message-tool-api-DtZ1wKbT.mjs";
@@ -1,3 +1 @@
1
- import { t as imessageMessageActions } from "./.setup/actions-CW7XYYF4.mjs";
2
- import { r as setIMessageRuntime } from "./.setup/runtime-BRQCPuAD.mjs";
3
- export { imessageMessageActions, setIMessageRuntime };
1
+ export { t as imessageMessageActions, _ as setIMessageRuntime } from "./.setup/actions-qOuKy8To.mjs";
@@ -1 +1 @@
1
- export { n as createIMessageConversationBindingManagerV2, r as imessageConversationBindingTesting } from "./.setup/conversation-bindings-vZFn6sN2.mjs";
1
+ export { n as createIMessageConversationBindingManagerV2 } from "./.setup/conversation-bindings-8DjxoIYU.mjs";
@@ -4,7 +4,7 @@ import { fileURLToPath } from "node:url";
4
4
  var setup_entry_default = defineBundledChannelSetupEntry({
5
5
  importMetaUrl: import.meta.url,
6
6
  plugin: {
7
- specifier: fileURLToPath(new URL(".setup/api-B0ih8Iof.mjs", import.meta.url).href),
7
+ specifier: fileURLToPath(new URL(".setup/api-DTbxSOPc.mjs", import.meta.url).href),
8
8
  exportName: "imessageSetupPlugin"
9
9
  }
10
10
  });
@@ -1,4 +1,4 @@
1
- import { o as normalizeIMessageHandle } from "../.setup/targets-CIx4BKqL.mjs";
1
+ import { s as normalizeIMessageHandle } from "../.setup/targets-C7CIWJ0k.mjs";
2
2
  import { executeSqliteQuerySync, executeSqliteQueryTakeFirstSync, getNodeSqliteKysely, openNodeSqliteDatabase } from "openclaw/plugin-sdk/sqlite-worker-runtime";
3
3
  // extensions/imessage/src/chat-db.worker.ts
4
4
  function appleMessageDateLowerBoundMs(sentAfterMs) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Returns true if the value is a valid ISO-8601 duration.
3
- * @specification https://tools.ietf.org/html/rfc3339
2
+ * Returns true if the value is a valid duration.
3
+ * @specification https://www.rfc-editor.org/rfc/rfc3339.html#appendix-A
4
4
  */
5
5
  export declare function IsDuration(value: string): boolean;
@@ -1,7 +1,7 @@
1
1
  const Duration = /^P((\d+Y(\d+M(\d+D)?)?|\d+M(\d+D)?|\d+D)(T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S))?|T(\d+H(\d+M(\d+S)?)?|\d+M(\d+S)?|\d+S)|\d+W)$/;
2
2
  /**
3
- * Returns true if the value is a valid ISO-8601 duration.
4
- * @specification https://tools.ietf.org/html/rfc3339
3
+ * Returns true if the value is a valid duration.
4
+ * @specification https://www.rfc-editor.org/rfc/rfc3339.html#appendix-A
5
5
  */
6
6
  export function IsDuration(value) {
7
7
  return Duration.test(value);
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Returns true if the value is an IdnEmail
3
3
  * @specification https://datatracker.ietf.org/doc/html/rfc4952
4
+ * @specification https://datatracker.ietf.org/doc/html/rfc6531
4
5
  */
5
6
  export declare function IsIdnEmail(value: string): boolean;
@@ -2,6 +2,7 @@ const IdnEmail = /^(?:[A-Za-z0-9!#$%&'*+\/=?^_`{|}~\u{0080}-\u{10FFFF}-]+(?:\.[A
2
2
  /**
3
3
  * Returns true if the value is an IdnEmail
4
4
  * @specification https://datatracker.ietf.org/doc/html/rfc4952
5
+ * @specification https://datatracker.ietf.org/doc/html/rfc6531
5
6
  */
6
7
  export function IsIdnEmail(value) {
7
8
  return IdnEmail.test(value.normalize('NFC'));
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Returns true if the value is a valid internationalized (IDN) hostname.
3
- * @specification https://tools.ietf.org/html/rfc3490
3
+ * @specification https://datatracker.ietf.org/doc/html/rfc5890
4
4
  * @specification https://tools.ietf.org/html/rfc5891
5
5
  * @specification https://tools.ietf.org/html/rfc5892
6
6
  * @specification https://tools.ietf.org/html/rfc5893
@@ -1,7 +1,7 @@
1
1
  import * as Idna from './idna/index.mjs';
2
2
  /**
3
3
  * Returns true if the value is a valid internationalized (IDN) hostname.
4
- * @specification https://tools.ietf.org/html/rfc3490
4
+ * @specification https://datatracker.ietf.org/doc/html/rfc5890
5
5
  * @specification https://tools.ietf.org/html/rfc5891
6
6
  * @specification https://tools.ietf.org/html/rfc5892
7
7
  * @specification https://tools.ietf.org/html/rfc5893
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Returns true if the value is a IPV4 address
3
- * @specification http://tools.ietf.org/html/rfc2673#section-3.2
2
+ * Returns true if the value is an IPv4 address
3
+ * @specification https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2
4
4
  */
5
5
  export declare function IsIPv4(value: string): boolean;
@@ -1,7 +1,7 @@
1
1
  const IPv4 = /^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/;
2
2
  /**
3
- * Returns true if the value is a IPV4 address
4
- * @specification http://tools.ietf.org/html/rfc2673#section-3.2
3
+ * Returns true if the value is an IPv4 address
4
+ * @specification https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.2
5
5
  */
6
6
  export function IsIPv4(value) {
7
7
  return IPv4.test(value);
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Returns true if the value is an IPv6 address
3
- * @specification http://tools.ietf.org/html/rfc2373#section-2.2
3
+ * @specification https://datatracker.ietf.org/doc/html/rfc4291#section-2.2
4
4
  */
5
5
  export declare function IsIPv6(value: string): boolean;
@@ -1,7 +1,7 @@
1
1
  const IPv6 = /^(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)$/i;
2
2
  /**
3
3
  * Returns true if the value is an IPv6 address
4
- * @specification http://tools.ietf.org/html/rfc2373#section-2.2
4
+ * @specification https://datatracker.ietf.org/doc/html/rfc4291#section-2.2
5
5
  */
6
6
  export function IsIPv6(value) {
7
7
  return IPv6.test(value);
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Returns true if the value is a relative json pointer
3
- * @specification https://datatracker.ietf.org/doc/html/rfc6901
2
+ * Returns true if the value is a relative JSON Pointer
3
+ * @specification https://datatracker.ietf.org/doc/html/draft-handrews-relative-json-pointer/
4
4
  * @source https://github.com/ajv-validator/ajv-formats
5
5
  */
6
6
  export declare function IsRelativeJsonPointer(value: string): boolean;
@@ -1,7 +1,7 @@
1
1
  const RelativeJsonPointer = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;
2
2
  /**
3
- * Returns true if the value is a relative json pointer
4
- * @specification https://datatracker.ietf.org/doc/html/rfc6901
3
+ * Returns true if the value is a relative JSON Pointer
4
+ * @specification https://datatracker.ietf.org/doc/html/draft-handrews-relative-json-pointer/
5
5
  * @source https://github.com/ajv-validator/ajv-formats
6
6
  */
7
7
  export function IsRelativeJsonPointer(value) {
@@ -106,6 +106,7 @@ export function Build(...args) {
106
106
  2: (context, schema) => [context, schema],
107
107
  1: (schema) => [{}, schema]
108
108
  });
109
+ Engine.ResetUnique();
109
110
  Engine.ResetExternal();
110
111
  Engine.ResetFunctions();
111
112
  const stack = Engine.Stack(context, schema);
@@ -1,2 +1,4 @@
1
- /** Returns a Unique Variable Name */
2
- export declare function Unique(): string;
1
+ /** Creates a unique variable name */
2
+ export declare function CreateUnique(): string;
3
+ /** Resets the unique variable name counter */
4
+ export declare function ResetUnique(): void;
@@ -1,5 +1,9 @@
1
1
  let index = 0;
2
- /** Returns a Unique Variable Name */
3
- export function Unique() {
4
- return `var_${index++}`;
2
+ /** Creates a unique variable name */
3
+ export function CreateUnique() {
4
+ return `unique_${index++}`;
5
+ }
6
+ /** Resets the unique variable name counter */
7
+ export function ResetUnique() {
8
+ index = 0;
5
9
  }
@@ -1,6 +1,6 @@
1
1
  // deno-fmt-ignore-file
2
2
  import * as Schema from '../types/index.mjs';
3
- import { Unique } from './_unique.mjs';
3
+ import * as Unique from './_unique.mjs';
4
4
  import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
5
5
  import { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';
6
6
  // ------------------------------------------------------------------
@@ -13,14 +13,14 @@ function IsValid(schema) {
13
13
  // Build
14
14
  // ------------------------------------------------------------------
15
15
  function BuildAdditionalItemsStandard(stack, context, schema, value) {
16
- const [item, index] = [Unique(), Unique()];
16
+ const [item, index] = [Unique.CreateUnique(), Unique.CreateUnique()];
17
17
  const isSchema = BuildSchemaPushStack(stack, context, schema.additionalItems, item);
18
18
  const isLength = E.IsLessThan(index, E.Constant(schema.items.length));
19
19
  const addIndex = context.AddIndex(index);
20
20
  return E.Every(value, E.Constant(0), [item, index], E.Or(isLength, E.And(isSchema, addIndex)));
21
21
  }
22
22
  function BuildAdditionalItemsFast(stack, context, schema, value) {
23
- const [item, index] = [Unique(), Unique()];
23
+ const [item, index] = [Unique.CreateUnique(), Unique.CreateUnique()];
24
24
  const isSchema = BuildSchemaPushStack(stack, context, schema.additionalItems, item);
25
25
  const isLength = E.IsLessThan(index, E.Constant(schema.items.length));
26
26
  return E.Every(value, E.Constant(0), [item, index], E.Or(isLength, isSchema));
@@ -1,9 +1,6 @@
1
1
  import * as Schema from '../types/index.mjs';
2
2
  import * as Stack from './_stack.mjs';
3
3
  import { BuildContext, CheckContext, ErrorContext } from './_context.mjs';
4
- export declare function CanAdditionalPropertiesFast(_context: BuildContext, schema: Schema.XAdditionalProperties, _value: string): schema is Schema.XAdditionalProperties & Schema.XRequired;
5
- export declare function BuildAdditionalPropertiesFast(_context: BuildContext, schema: Schema.XAdditionalProperties & Schema.XRequired, value: string): string;
6
- export declare function BuildAdditionalPropertiesStandard(stack: Stack.XStack, context: BuildContext, schema: Schema.XAdditionalProperties, value: string): string;
7
4
  export declare function BuildAdditionalProperties(stack: Stack.XStack, context: BuildContext, schema: Schema.XAdditionalProperties, value: string): string;
8
5
  export declare function CheckAdditionalProperties(stack: Stack.XStack, context: CheckContext, schema: Schema.XAdditionalProperties, value: Record<PropertyKey, unknown>): boolean;
9
6
  export declare function ErrorAdditionalProperties(stack: Stack.XStack, context: ErrorContext, schemaPath: string, instancePath: string, schema: Schema.XAdditionalProperties, value: Record<PropertyKey, unknown>): boolean;
@@ -1,8 +1,8 @@
1
1
  // deno-fmt-ignore-file
2
2
  import * as Schema from '../types/index.mjs';
3
+ import * as Unique from './_unique.mjs';
3
4
  import * as Externals from './_externals.mjs';
4
5
  import * as Pathing from './_pathing.mjs';
5
- import { Unique } from './_unique.mjs';
6
6
  import { UnicodeRegExp } from './_regexp.mjs';
7
7
  import { EmitGuard as E, Guard as G } from '../../guard/index.mjs';
8
8
  import { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';
@@ -42,35 +42,33 @@ function GetPropertiesPattern(schema) {
42
42
  return G.IsEqual(patterns.length, 0) ? '(?!)' : `(${patterns.join('|')})`;
43
43
  }
44
44
  // ------------------------------------------------------------------
45
- // BuildAdditionalPropertiesFast
45
+ // BuildAdditionalPropertiesFast (AdditionalProperties False)
46
46
  //
47
- // Optimized logic for schemas with `additionalProperties: false`.
48
- //
49
- // This fast-path applies only when:
50
- // - `additionalProperties` is explicitly set to false,
51
- // - the schema uses only `properties` (no `patternProperties`),
52
- // - and all defined properties are required (i.e., no optional keys).
53
- //
54
- // This constraint is common when enforcing strict object shapes
55
- // with only known, fixed keys. When all these conditions are met,
56
- // we can generate a simplified and efficient runtime check.
47
+ // - AdditionalProperties is explicitly set to false,
48
+ // - The schema uses only Properties (no PatternProperties),
49
+ // - Required contains exactly the keys in Properties.
57
50
  //
58
51
  // ------------------------------------------------------------------
59
- export function CanAdditionalPropertiesFast(_context, schema, _value) {
52
+ function HasExactRequiredProperties(schema) {
53
+ const keys = G.Keys(schema.properties);
54
+ return G.IsEqual(keys.length, schema.required.length)
55
+ && G.Every(keys, 0, (key) => schema.required.includes(key));
56
+ }
57
+ function CanAdditionalPropertiesFast(_context, schema, _value) {
60
58
  return Schema.IsRequired(schema)
61
59
  && Schema.IsProperties(schema)
62
60
  && !Schema.IsPatternProperties(schema)
63
61
  && G.IsEqual(schema.additionalProperties, false)
64
- && G.IsEqual(G.Keys(schema.properties).length, schema.required.length);
62
+ && HasExactRequiredProperties(schema);
65
63
  }
66
- export function BuildAdditionalPropertiesFast(_context, schema, value) {
64
+ function BuildAdditionalPropertiesFast(_context, schema, value) {
67
65
  return E.IsEqual(E.Member(E.Call(E.Member('Object', 'getOwnPropertyNames'), [value]), 'length'), E.Constant(schema.required.length));
68
66
  }
69
67
  // ------------------------------------------------------------------
70
68
  // BuildAdditionalPropertiesStandard
71
69
  // ------------------------------------------------------------------
72
- export function BuildAdditionalPropertiesStandard(stack, context, schema, value) {
73
- const [key, _index] = [Unique(), Unique()];
70
+ function BuildAdditionalPropertiesStandard(stack, context, schema, value) {
71
+ const [key, _index] = [Unique.CreateUnique(), Unique.CreateUnique()];
74
72
  const regexp = Externals.CreateVariable(UnicodeRegExp(GetPropertiesPattern(schema)));
75
73
  const isSchema = BuildSchemaPushStack(stack, context, schema.additionalProperties, `${value}[${key}]`);
76
74
  const isKey = E.Call(E.Member(regexp, 'test'), [key]);
@@ -1,6 +1,6 @@
1
1
  // deno-fmt-ignore-file
2
2
  import * as Schema from '../types/index.mjs';
3
- import { Unique } from './_unique.mjs';
3
+ import * as Unique from './_unique.mjs';
4
4
  import { EmitGuard as E, Guard as G } from '../../guard/index.mjs';
5
5
  import { BuildSchema, CheckSchema } from './schema.mjs';
6
6
  // ------------------------------------------------------------------
@@ -13,13 +13,13 @@ function IsValid(schema) {
13
13
  // Build
14
14
  // ------------------------------------------------------------------
15
15
  function BuildContainsStandard(stack, context, schema, value) {
16
- const [item, index] = [Unique(), Unique()];
16
+ const [item, index] = [Unique.CreateUnique(), Unique.CreateUnique()];
17
17
  const isLength = E.Not(E.IsEqual(E.Member(value, 'length'), E.Constant(0)));
18
18
  const isSome = E.SomeAll(value, [item, index], E.And(BuildSchema(stack, context, schema.contains, item), context.AddIndex(index)));
19
19
  return E.And(isLength, isSome);
20
20
  }
21
21
  function BuildContainsFast(stack, context, schema, value) {
22
- const [item] = [Unique()];
22
+ const [item] = [Unique.CreateUnique()];
23
23
  const isLength = E.Not(E.IsEqual(E.Member(value, 'length'), E.Constant(0)));
24
24
  const isSome = E.Some(value, [item, '_'], BuildSchema(stack, context, schema.contains, item));
25
25
  return E.And(isLength, isSome);
@@ -4,6 +4,7 @@ export * from './_functions.mjs';
4
4
  export * from './_reducer.mjs';
5
5
  export * from './_refine.mjs';
6
6
  export * from './_stack.mjs';
7
+ export * from './_unique.mjs';
7
8
  export * from './additionalItems.mjs';
8
9
  export * from './additionalProperties.mjs';
9
10
  export * from './allOf.mjs';
@@ -7,6 +7,7 @@ export * from './_functions.mjs';
7
7
  export * from './_reducer.mjs';
8
8
  export * from './_refine.mjs';
9
9
  export * from './_stack.mjs';
10
+ export * from './_unique.mjs';
10
11
  // ------------------------------------------------------------------
11
12
  // Schematics
12
13
  // ------------------------------------------------------------------
@@ -1,5 +1,6 @@
1
1
  // deno-fmt-ignore-file
2
2
  import * as Schema from '../types/index.mjs';
3
+ import * as Unique from './_unique.mjs';
3
4
  import { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';
4
5
  import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
5
6
  // ------------------------------------------------------------------
@@ -44,14 +45,16 @@ function ErrorItemsSized(stack, context, schemaPath, instancePath, schema, value
44
45
  // ------------------------------------------------------------------
45
46
  function BuildItemsUnsizedStandard(stack, context, schema, value) {
46
47
  const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;
47
- const isSchema = BuildSchemaPushStack(stack, context, schema.items, 'element');
48
+ const [item] = [Unique.CreateUnique()];
49
+ const isSchema = BuildSchemaPushStack(stack, context, schema.items, item);
48
50
  const addIndex = context.AddIndex('index');
49
- return E.Every(value, E.Constant(offset), ['element', 'index'], E.And(isSchema, addIndex));
51
+ return E.Every(value, E.Constant(offset), [item, 'index'], E.And(isSchema, addIndex));
50
52
  }
51
53
  function BuildItemsUnsizedFast(stack, context, schema, value) {
52
54
  const offset = Schema.IsPrefixItems(schema) ? schema.prefixItems.length : 0;
53
- const isSchema = BuildSchemaPushStack(stack, context, schema.items, 'element');
54
- return E.Every(value, E.Constant(offset), ['element', 'index'], isSchema);
55
+ const [item] = [Unique.CreateUnique()];
56
+ const isSchema = BuildSchemaPushStack(stack, context, schema.items, item);
57
+ return E.Every(value, E.Constant(offset), [item, 'index'], isSchema);
55
58
  }
56
59
  function BuildItemsUnsized(stack, context, schema, value) {
57
60
  return context.UseUnevaluated()
@@ -1,6 +1,6 @@
1
1
  // deno-fmt-ignore-file
2
2
  import * as Schema from '../types/index.mjs';
3
- import { Unique } from './_unique.mjs';
3
+ import * as Unique from './_unique.mjs';
4
4
  import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
5
5
  import { BuildSchema, CheckSchema } from './schema.mjs';
6
6
  // ------------------------------------------------------------------
@@ -15,7 +15,7 @@ function IsValid(schema) {
15
15
  export function BuildMaxContains(stack, context, schema, value) {
16
16
  if (!IsValid(schema))
17
17
  return E.Constant(true);
18
- const [item] = [Unique()];
18
+ const [item] = [Unique.CreateUnique()];
19
19
  const count = E.Counted(value, [item, '_'], BuildSchema(stack, context, schema.contains, item));
20
20
  return E.IsLessEqualThan(count, E.Constant(schema.maxContains));
21
21
  }