@openclaw/google-meet 2026.9.3 → 2026.9.5

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 (175) hide show
  1. package/assets/activity.svg +40 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/{chrome-create-PKAyxCiL.js → .setup/chrome-create-BZRBHJp9.mjs} +1 -1
  4. package/dist/{cli-HxUMx7pI.js → .setup/cli-MJjnaxoP.mjs} +68 -88
  5. package/dist/{config-wBK8loBb.js → .setup/config-C-6enWkx.mjs} +2 -0
  6. package/dist/{create-BbQ9g_AK.js → .setup/create-sGWmlpgC.mjs} +3 -3
  7. package/dist/{google-meet-platform-adapter-C3J-iFRE.js → .setup/google-meet-platform-adapter-DQZ74Kd5.mjs} +32 -3
  8. package/dist/{node-host-BXtXbsMa.js → .setup/node-host-BOzEP_Us.mjs} +3 -3
  9. package/dist/{node-invoke-policy-B0gOlLJR.js → .setup/node-invoke-policy-hwXq9MfV.mjs} +2 -2
  10. package/dist/{oauth-DgBscjXK.js → .setup/oauth-22Ey-zCb.mjs} +1 -1
  11. package/dist/{plugin-helpers-DkI5A7LT.js → .setup/plugin-helpers-rGjL9QFK.mjs} +5 -5
  12. package/dist/{plugin-registration-ona5lHdz.js → .setup/plugin-registration-CfZbUMDY.mjs} +7 -7
  13. package/dist/{runtime-BKbf6Uj_.js → .setup/runtime-D_C0dFI1.mjs} +22 -307
  14. package/dist/cli-metadata.js +1 -1
  15. package/dist/index.js +4 -4
  16. package/node_modules/jszip/.github/FUNDING.yml +1 -0
  17. package/node_modules/jszip/.github/actions/setup/action.yml +23 -0
  18. package/node_modules/jszip/.github/workflows/benchmark.yml +38 -0
  19. package/node_modules/jszip/.github/workflows/main.yml +55 -0
  20. package/node_modules/jszip/CHANGES.md +6 -0
  21. package/node_modules/jszip/dist/jszip.js +28 -19
  22. package/node_modules/jszip/dist/jszip.min.js +2 -2
  23. package/node_modules/jszip/index.d.ts +14 -0
  24. package/node_modules/jszip/lib/index.js +1 -1
  25. package/node_modules/jszip/lib/utils.js +26 -17
  26. package/node_modules/jszip/package.json +2 -2
  27. package/node_modules/typebox/build/compile/validator.d.mts +1 -1
  28. package/node_modules/typebox/build/compile/validator.mjs +1 -1
  29. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +7 -5
  30. package/node_modules/typebox/build/format/iri.mjs +5 -1
  31. package/node_modules/typebox/build/guard/emit.mjs +2 -4
  32. package/node_modules/typebox/build/guard/guard.mjs +6 -18
  33. package/node_modules/typebox/build/guard/string.mjs +16 -24
  34. package/node_modules/typebox/build/schema/build.mjs +2 -2
  35. package/node_modules/typebox/build/schema/check.mjs +1 -1
  36. package/node_modules/typebox/build/schema/compile.d.mts +3 -2
  37. package/node_modules/typebox/build/schema/compile.mjs +8 -8
  38. package/node_modules/typebox/build/schema/engine/_context.d.mts +6 -7
  39. package/node_modules/typebox/build/schema/engine/_context.mjs +23 -15
  40. package/node_modules/typebox/build/schema/engine/_functions.d.mts +2 -2
  41. package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -1
  42. package/node_modules/typebox/build/schema/engine/_reducer.d.mts +3 -3
  43. package/node_modules/typebox/build/schema/engine/_refine.d.mts +5 -5
  44. package/node_modules/typebox/build/schema/engine/_refine.mjs +4 -7
  45. package/node_modules/typebox/build/schema/engine/_stack.d.mts +34 -16
  46. package/node_modules/typebox/build/schema/engine/_stack.mjs +148 -104
  47. package/node_modules/typebox/build/schema/engine/additionalItems.d.mts +4 -4
  48. package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +8 -8
  49. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +26 -18
  50. package/node_modules/typebox/build/schema/engine/allOf.d.mts +4 -4
  51. package/node_modules/typebox/build/schema/engine/allOf.mjs +3 -3
  52. package/node_modules/typebox/build/schema/engine/anyOf.d.mts +4 -4
  53. package/node_modules/typebox/build/schema/engine/anyOf.mjs +5 -10
  54. package/node_modules/typebox/build/schema/engine/boolean.d.mts +4 -4
  55. package/node_modules/typebox/build/schema/engine/boolean.mjs +2 -6
  56. package/node_modules/typebox/build/schema/engine/const.d.mts +4 -4
  57. package/node_modules/typebox/build/schema/engine/const.mjs +2 -6
  58. package/node_modules/typebox/build/schema/engine/contains.d.mts +4 -4
  59. package/node_modules/typebox/build/schema/engine/contains.mjs +2 -6
  60. package/node_modules/typebox/build/schema/engine/dependencies.d.mts +4 -4
  61. package/node_modules/typebox/build/schema/engine/dependencies.mjs +3 -6
  62. package/node_modules/typebox/build/schema/engine/dependentRequired.d.mts +4 -4
  63. package/node_modules/typebox/build/schema/engine/dependentRequired.mjs +2 -6
  64. package/node_modules/typebox/build/schema/engine/dependentSchemas.d.mts +4 -4
  65. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +4 -4
  66. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +11 -7
  67. package/node_modules/typebox/build/schema/engine/enum.d.mts +4 -4
  68. package/node_modules/typebox/build/schema/engine/enum.mjs +2 -6
  69. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.d.mts +4 -4
  70. package/node_modules/typebox/build/schema/engine/exclusiveMaximum.mjs +2 -6
  71. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.d.mts +4 -4
  72. package/node_modules/typebox/build/schema/engine/exclusiveMinimum.mjs +2 -6
  73. package/node_modules/typebox/build/schema/engine/format.d.mts +4 -4
  74. package/node_modules/typebox/build/schema/engine/format.mjs +2 -6
  75. package/node_modules/typebox/build/schema/engine/if.d.mts +4 -4
  76. package/node_modules/typebox/build/schema/engine/if.mjs +7 -15
  77. package/node_modules/typebox/build/schema/engine/items.d.mts +4 -4
  78. package/node_modules/typebox/build/schema/engine/items.mjs +1 -1
  79. package/node_modules/typebox/build/schema/engine/maxContains.d.mts +4 -4
  80. package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -6
  81. package/node_modules/typebox/build/schema/engine/maxItems.d.mts +4 -4
  82. package/node_modules/typebox/build/schema/engine/maxItems.mjs +2 -6
  83. package/node_modules/typebox/build/schema/engine/maxLength.d.mts +4 -4
  84. package/node_modules/typebox/build/schema/engine/maxLength.mjs +2 -6
  85. package/node_modules/typebox/build/schema/engine/maxProperties.d.mts +4 -4
  86. package/node_modules/typebox/build/schema/engine/maxProperties.mjs +2 -6
  87. package/node_modules/typebox/build/schema/engine/maximum.d.mts +4 -4
  88. package/node_modules/typebox/build/schema/engine/maximum.mjs +2 -6
  89. package/node_modules/typebox/build/schema/engine/minContains.d.mts +4 -4
  90. package/node_modules/typebox/build/schema/engine/minContains.mjs +2 -6
  91. package/node_modules/typebox/build/schema/engine/minItems.d.mts +5 -5
  92. package/node_modules/typebox/build/schema/engine/minItems.mjs +2 -6
  93. package/node_modules/typebox/build/schema/engine/minLength.d.mts +4 -4
  94. package/node_modules/typebox/build/schema/engine/minLength.mjs +2 -6
  95. package/node_modules/typebox/build/schema/engine/minProperties.d.mts +4 -4
  96. package/node_modules/typebox/build/schema/engine/minProperties.mjs +2 -6
  97. package/node_modules/typebox/build/schema/engine/minimum.d.mts +4 -4
  98. package/node_modules/typebox/build/schema/engine/minimum.mjs +2 -6
  99. package/node_modules/typebox/build/schema/engine/multipleOf.d.mts +4 -4
  100. package/node_modules/typebox/build/schema/engine/multipleOf.mjs +2 -6
  101. package/node_modules/typebox/build/schema/engine/not.d.mts +4 -4
  102. package/node_modules/typebox/build/schema/engine/not.mjs +4 -8
  103. package/node_modules/typebox/build/schema/engine/oneOf.d.mts +4 -4
  104. package/node_modules/typebox/build/schema/engine/oneOf.mjs +6 -11
  105. package/node_modules/typebox/build/schema/engine/pattern.d.mts +4 -4
  106. package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -7
  107. package/node_modules/typebox/build/schema/engine/patternProperties.d.mts +4 -4
  108. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +1 -1
  109. package/node_modules/typebox/build/schema/engine/prefixItems.d.mts +4 -4
  110. package/node_modules/typebox/build/schema/engine/prefixItems.mjs +1 -1
  111. package/node_modules/typebox/build/schema/engine/properties.d.mts +4 -4
  112. package/node_modules/typebox/build/schema/engine/properties.mjs +1 -1
  113. package/node_modules/typebox/build/schema/engine/propertyNames.d.mts +4 -4
  114. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +4 -10
  115. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +4 -4
  116. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +11 -7
  117. package/node_modules/typebox/build/schema/engine/ref.d.mts +4 -4
  118. package/node_modules/typebox/build/schema/engine/ref.mjs +19 -15
  119. package/node_modules/typebox/build/schema/engine/required.d.mts +4 -4
  120. package/node_modules/typebox/build/schema/engine/required.mjs +2 -6
  121. package/node_modules/typebox/build/schema/engine/schema.d.mts +7 -7
  122. package/node_modules/typebox/build/schema/engine/schema.mjs +137 -133
  123. package/node_modules/typebox/build/schema/engine/type.d.mts +4 -4
  124. package/node_modules/typebox/build/schema/engine/type.mjs +2 -6
  125. package/node_modules/typebox/build/schema/engine/unevaluatedItems.d.mts +4 -4
  126. package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +5 -9
  127. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.d.mts +4 -4
  128. package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +5 -9
  129. package/node_modules/typebox/build/schema/engine/uniqueItems.d.mts +4 -4
  130. package/node_modules/typebox/build/schema/engine/uniqueItems.mjs +2 -6
  131. package/node_modules/typebox/build/schema/errors.d.mts +2 -2
  132. package/node_modules/typebox/build/schema/errors.mjs +8 -14
  133. package/node_modules/typebox/build/schema/intern/index.d.mts +1 -0
  134. package/node_modules/typebox/build/schema/intern/index.mjs +1 -0
  135. package/node_modules/typebox/build/schema/intern/intern.d.mts +11 -0
  136. package/node_modules/typebox/build/schema/intern/intern.mjs +293 -0
  137. package/node_modules/typebox/build/schema/meta/draft_2019_09.d.mts +2 -0
  138. package/node_modules/typebox/build/schema/meta/draft_2019_09.mjs +288 -0
  139. package/node_modules/typebox/build/schema/meta/draft_2020_12.d.mts +2 -0
  140. package/node_modules/typebox/build/schema/meta/draft_2020_12.mjs +300 -0
  141. package/node_modules/typebox/build/schema/meta/draft_3.d.mts +2 -0
  142. package/node_modules/typebox/build/schema/meta/draft_3.mjs +143 -0
  143. package/node_modules/typebox/build/schema/meta/draft_4.d.mts +2 -0
  144. package/node_modules/typebox/build/schema/meta/draft_4.mjs +149 -0
  145. package/node_modules/typebox/build/schema/meta/draft_6.d.mts +2 -0
  146. package/node_modules/typebox/build/schema/meta/draft_6.mjs +155 -0
  147. package/node_modules/typebox/build/schema/meta/draft_7.d.mts +2 -0
  148. package/node_modules/typebox/build/schema/meta/draft_7.mjs +172 -0
  149. package/node_modules/typebox/build/schema/meta/index.d.mts +2 -0
  150. package/node_modules/typebox/build/schema/meta/index.mjs +2 -0
  151. package/node_modules/typebox/build/schema/meta/meta.d.mts +9 -0
  152. package/node_modules/typebox/build/schema/meta/meta.mjs +15 -0
  153. package/node_modules/typebox/build/schema/meta/schema.d.mts +6 -0
  154. package/node_modules/typebox/build/schema/meta/schema.mjs +1 -0
  155. package/node_modules/typebox/build/schema/parse.d.mts +1 -0
  156. package/node_modules/typebox/build/schema/parse.mjs +10 -5
  157. package/node_modules/typebox/build/schema/resolve/resolve.d.mts +8 -3
  158. package/node_modules/typebox/build/schema/resolve/resolve.mjs +268 -139
  159. package/node_modules/typebox/build/schema/schema.d.mts +2 -0
  160. package/node_modules/typebox/build/schema/schema.mjs +2 -0
  161. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -12
  162. package/node_modules/typebox/build/value/errors/errors.mjs +2 -7
  163. package/node_modules/typebox/package.json +1 -1
  164. package/node_modules/typebox/readme.md +59 -89
  165. package/openclaw.plugin.json +33 -0
  166. package/package.json +10 -7
  167. package/node_modules/jszip/.github/workflows/pr.yaml +0 -58
  168. package/node_modules/jszip/.jekyll-metadata +0 -0
  169. package/node_modules/jszip/.travis.yml +0 -17
  170. package/node_modules/jszip/deps.js +0 -37
  171. package/node_modules/jszip/graph.svg +0 -601
  172. /package/dist/{cli-output-mode-BwH_6tH8.js → .setup/cli-output-mode-BwH_6tH8.mjs} +0 -0
  173. /package/dist/{google-api-errors-BDYXfKRa.js → .setup/google-api-errors-BDYXfKRa.mjs} +0 -0
  174. /package/dist/{google-meet-platform-constants-Bs5iAg3E.js → .setup/google-meet-platform-constants-Bs5iAg3E.mjs} +0 -0
  175. /package/dist/{meet-url-BP2Jlvjs.js → .setup/meet-url-BP2Jlvjs.mjs} +0 -0
@@ -0,0 +1,293 @@
1
+ import { Arguments } from '../../system/arguments/index.mjs';
2
+ import { Hashing, Memory } from '../../system/index.mjs';
3
+ import * as Schema from '../types/index.mjs';
4
+ import * as Stack from '../engine/_stack.mjs';
5
+ import { Guard } from '../../guard/index.mjs';
6
+ import { Resolve } from '../resolve/index.mjs';
7
+ // ----------------------------------------------------------------
8
+ // UnresolvableRef
9
+ // ----------------------------------------------------------------
10
+ function UnresolvableRef(ref) {
11
+ throw Error(`UnresolvableRef '${ref}'`);
12
+ }
13
+ // ----------------------------------------------------------------
14
+ // HashKey
15
+ // ----------------------------------------------------------------
16
+ function HashKey(schema) {
17
+ return `x-${Hashing.Hash(schema)}`;
18
+ }
19
+ // ----------------------------------------------------------------
20
+ // AdditionalItems
21
+ // ----------------------------------------------------------------
22
+ function FromAdditionalItems(context, schema) {
23
+ return FromSchema(context, schema.additionalItems);
24
+ }
25
+ // ----------------------------------------------------------------
26
+ // AdditionalProperties
27
+ // ----------------------------------------------------------------
28
+ function FromAdditionalProperties(context, schema) {
29
+ return FromSchema(context, schema.additionalProperties);
30
+ }
31
+ // ----------------------------------------------------------------
32
+ // AllOf
33
+ // ----------------------------------------------------------------
34
+ function FromAllOf(context, schema) {
35
+ return schema.allOf.map((inner) => FromSchema(context, inner));
36
+ }
37
+ // ----------------------------------------------------------------
38
+ // AnyOf
39
+ // ----------------------------------------------------------------
40
+ function FromAnyOf(context, schema) {
41
+ return schema.anyOf.map((inner) => FromSchema(context, inner));
42
+ }
43
+ // ----------------------------------------------------------------
44
+ // Contains
45
+ // ----------------------------------------------------------------
46
+ function FromContains(context, schema) {
47
+ return FromSchema(context, schema.contains);
48
+ }
49
+ // ----------------------------------------------------------------
50
+ // DependentSchemas
51
+ // ----------------------------------------------------------------
52
+ function FromDependentSchemas(context, schema) {
53
+ return Guard.Keys(schema.dependentSchemas).reduce((result, key) => ({ ...result, [key]: FromSchema(context, schema.dependentSchemas[key]) }), {});
54
+ }
55
+ // ----------------------------------------------------------------
56
+ // Else
57
+ // ----------------------------------------------------------------
58
+ function FromElse(context, schema) {
59
+ return FromSchema(context, schema.else);
60
+ }
61
+ // ----------------------------------------------------------------
62
+ // If
63
+ // ----------------------------------------------------------------
64
+ function FromIf(context, schema) {
65
+ return FromSchema(context, schema.if);
66
+ }
67
+ // ----------------------------------------------------------------
68
+ // Items
69
+ // ----------------------------------------------------------------
70
+ function FromItems(context, schema) {
71
+ return Schema.IsItemsSized(schema) ? FromItemsSized(context, schema) : FromItemsUnsized(context, schema);
72
+ }
73
+ // ----------------------------------------------------------------
74
+ // ItemsSized
75
+ // ----------------------------------------------------------------
76
+ function FromItemsSized(context, schema) {
77
+ return schema.items.map((inner) => FromSchema(context, inner));
78
+ }
79
+ // ----------------------------------------------------------------
80
+ // ItemsUnsized
81
+ // ----------------------------------------------------------------
82
+ function FromItemsUnsized(context, schema) {
83
+ return FromSchema(context, schema.items);
84
+ }
85
+ // ----------------------------------------------------------------
86
+ // Not
87
+ // ----------------------------------------------------------------
88
+ function FromNot(context, schema) {
89
+ return FromSchema(context, schema.not);
90
+ }
91
+ // ----------------------------------------------------------------
92
+ // OneOf
93
+ // ----------------------------------------------------------------
94
+ function FromOneOf(context, schema) {
95
+ return schema.oneOf.map((inner) => FromSchema(context, inner));
96
+ }
97
+ // ----------------------------------------------------------------
98
+ // PatternProperties
99
+ // ----------------------------------------------------------------
100
+ function FromPatternProperties(context, schema) {
101
+ return Guard.Keys(schema.patternProperties).reduce((result, key) => ({ ...result, [key]: FromSchema(context, schema.patternProperties[key]) }), {});
102
+ }
103
+ // ----------------------------------------------------------------
104
+ // PrefixItems
105
+ // ----------------------------------------------------------------
106
+ function FromPrefixItems(context, schema) {
107
+ return schema.prefixItems.map((inner) => FromSchema(context, inner));
108
+ }
109
+ // ----------------------------------------------------------------
110
+ // Properties
111
+ // ----------------------------------------------------------------
112
+ function FromProperties(context, schema) {
113
+ return Guard.Keys(schema.properties).reduce((result, key) => ({ ...result, [key]: FromSchema(context, schema.properties[key]) }), {});
114
+ }
115
+ // ----------------------------------------------------------------
116
+ // PropertyNames
117
+ // ----------------------------------------------------------------
118
+ function FromPropertyNames(context, schema) {
119
+ return FromSchema(context, schema.propertyNames);
120
+ }
121
+ // ----------------------------------------------------------------
122
+ // Ref
123
+ // ----------------------------------------------------------------
124
+ function ResolveRef(stack, ref) {
125
+ const result = Resolve.Ref(stack, { $ref: ref });
126
+ return { schema: result.schema ?? UnresolvableRef(ref), stack: result.stack };
127
+ }
128
+ // ----------------------------------------------------------------
129
+ // DynamicRef
130
+ // ----------------------------------------------------------------
131
+ function ResolveDynamicRef(stack, schema) {
132
+ return Resolve.DynamicRef(stack, schema) ?? UnresolvableRef(schema.$dynamicRef);
133
+ }
134
+ // ----------------------------------------------------------------
135
+ // RecursiveRef
136
+ // ----------------------------------------------------------------
137
+ function ResolveRecursiveRef(stack, schema) {
138
+ return Resolve.RecursiveRef(stack, schema) ?? UnresolvableRef(schema.$recursiveRef);
139
+ }
140
+ // ----------------------------------------------------------------
141
+ // FromResolvedRef (shared logic for Ref, DynamicRef, RecursiveRef)
142
+ // ----------------------------------------------------------------
143
+ function FromResolvedRef(context, target, nextStack) {
144
+ const nextContext = { ...context, stack: nextStack };
145
+ const resolving = context.resolving.get(target);
146
+ if (Guard.IsUndefined(resolving))
147
+ return FromSchema(nextContext, target);
148
+ // Target is mid-intern, so this is a cycle (point at its reserved placeholder)
149
+ resolving.used = true;
150
+ return { $ref: `#/$defs/${resolving.key}` };
151
+ }
152
+ // ----------------------------------------------------------------
153
+ // FromRef
154
+ // ----------------------------------------------------------------
155
+ function FromRef(context, schema) {
156
+ // Resolve target off the current traversal stack, carrying forward any resource crossing
157
+ const { schema: target, stack } = ResolveRef(context.stack, schema.$ref);
158
+ return FromResolvedRef(context, target, stack);
159
+ }
160
+ // ----------------------------------------------------------------
161
+ // FromDynamicRef
162
+ // ----------------------------------------------------------------
163
+ function FromDynamicRef(context, schema) {
164
+ // Resolve target off the current traversal stack (dynamic scope depends on anchors seen so far)
165
+ const target = ResolveDynamicRef(context.stack, schema);
166
+ return FromResolvedRef(context, target, { ...context.stack, pendingResource: true });
167
+ }
168
+ // ----------------------------------------------------------------
169
+ // FromRecursiveRef
170
+ // ----------------------------------------------------------------
171
+ function FromRecursiveRef(context, schema) {
172
+ // Resolve target off the current traversal stack (recursive scope depends on the path taken so far)
173
+ const target = ResolveRecursiveRef(context.stack, schema);
174
+ return FromResolvedRef(context, target, { ...context.stack, pendingResource: true });
175
+ }
176
+ // ----------------------------------------------------------------
177
+ // Then
178
+ // ----------------------------------------------------------------
179
+ function FromThen(context, schema) {
180
+ return FromSchema(context, schema.then);
181
+ }
182
+ // ----------------------------------------------------------------
183
+ // UnevaluatedItems
184
+ // ----------------------------------------------------------------
185
+ function FromUnevaluatedItems(context, schema) {
186
+ return FromSchema(context, schema.unevaluatedItems);
187
+ }
188
+ // ----------------------------------------------------------------
189
+ // UnevaluatedProperties
190
+ // ----------------------------------------------------------------
191
+ function FromUnevaluatedProperties(context, schema) {
192
+ return FromSchema(context, schema.unevaluatedProperties);
193
+ }
194
+ // ----------------------------------------------------------------
195
+ // SchemaObject
196
+ // ----------------------------------------------------------------
197
+ function FromSchemaObject(context, schema) {
198
+ // Reference-style schemas resolve to another node and cannot contain other keywords
199
+ if (Schema.IsRef(schema))
200
+ return FromRef(context, schema);
201
+ if (Schema.IsDynamicRef(schema))
202
+ return FromDynamicRef(context, schema);
203
+ if (Schema.IsRecursiveRef(schema))
204
+ return FromRecursiveRef(context, schema);
205
+ // Check if the schema has already been resolved
206
+ const existing = resolved.get(schema);
207
+ if (!Guard.IsUndefined(existing))
208
+ return existing;
209
+ // Reserve a placeholder key in case a nested ref cycles back to this schema
210
+ const reservation = { key: `x-ref-${context.resolving.size}`, used: false };
211
+ context.resolving.set(schema, reservation);
212
+ // Intern each subschema
213
+ const remapped = {
214
+ ...(Schema.IsRefine(schema) ? { ['~refine']: schema['~refine'] } : {}),
215
+ ...(Schema.IsAdditionalItems(schema) ? { additionalItems: FromAdditionalItems(context, schema) } : {}),
216
+ ...(Schema.IsAdditionalProperties(schema) ? { additionalProperties: FromAdditionalProperties(context, schema) } : {}),
217
+ ...(Schema.IsAllOf(schema) ? { allOf: FromAllOf(context, schema) } : {}),
218
+ ...(Schema.IsAnyOf(schema) ? { anyOf: FromAnyOf(context, schema) } : {}),
219
+ ...(Schema.IsContains(schema) ? { contains: FromContains(context, schema) } : {}),
220
+ ...(Schema.IsDependentSchemas(schema) ? { dependentSchemas: FromDependentSchemas(context, schema) } : {}),
221
+ ...(Schema.IsElse(schema) ? { else: FromElse(context, schema) } : {}),
222
+ ...(Schema.IsIf(schema) ? { if: FromIf(context, schema) } : {}),
223
+ ...(Schema.IsItems(schema) ? { items: FromItems(context, schema) } : {}),
224
+ ...(Schema.IsNot(schema) ? { not: FromNot(context, schema) } : {}),
225
+ ...(Schema.IsOneOf(schema) ? { oneOf: FromOneOf(context, schema) } : {}),
226
+ ...(Schema.IsPatternProperties(schema) ? { patternProperties: FromPatternProperties(context, schema) } : {}),
227
+ ...(Schema.IsPrefixItems(schema) ? { prefixItems: FromPrefixItems(context, schema) } : {}),
228
+ ...(Schema.IsProperties(schema) ? { properties: FromProperties(context, schema) } : {}),
229
+ ...(Schema.IsPropertyNames(schema) ? { propertyNames: FromPropertyNames(context, schema) } : {}),
230
+ ...(Schema.IsThen(schema) ? { then: FromThen(context, schema) } : {}),
231
+ ...(Schema.IsUnevaluatedItems(schema) ? { unevaluatedItems: FromUnevaluatedItems(context, schema) } : {}),
232
+ ...(Schema.IsUnevaluatedProperties(schema) ? { unevaluatedProperties: FromUnevaluatedProperties(context, schema) } : {})
233
+ };
234
+ context.resolving.delete(schema);
235
+ // Discard resolution keywords and finalize the interned schema
236
+ const interned = Memory.Discard(Memory.Assign(schema, remapped), ['$id', '$defs', '$anchor', '$dynamicAnchor', '$recursionAnchor']);
237
+ const key = reservation.used ? reservation.key : HashKey(interned);
238
+ registry.set(key, interned);
239
+ // Result
240
+ const result = { $ref: `#/$defs/${key}` };
241
+ resolved.set(schema, result);
242
+ return result;
243
+ }
244
+ // ----------------------------------------------------------------
245
+ // SchemaBoolean
246
+ // ----------------------------------------------------------------
247
+ function FromSchemaBoolean(_context, schema) {
248
+ // Finalize and register the result
249
+ const key = HashKey(schema);
250
+ registry.set(key, schema);
251
+ // Result
252
+ const result = { $ref: `#/$defs/${key}` };
253
+ resolved.set(schema, result);
254
+ return result;
255
+ }
256
+ // ----------------------------------------------------------------
257
+ // Schema
258
+ // ----------------------------------------------------------------
259
+ function FromSchema(context, schema) {
260
+ const next = { ...context, stack: Stack.NextStack(context.stack, schema) };
261
+ return Schema.IsSchemaBoolean(schema) ? FromSchemaBoolean(next, schema) : FromSchemaObject(next, schema);
262
+ }
263
+ // ----------------------------------------------------------------
264
+ // BooleanEntry
265
+ // ----------------------------------------------------------------
266
+ function BooleanEntry(schema) {
267
+ const key = HashKey(schema);
268
+ return { $ref: `#/$defs/${key}`, $defs: { [key]: schema } };
269
+ }
270
+ // ----------------------------------------------------------------
271
+ // Module-level accumulator state
272
+ // ----------------------------------------------------------------
273
+ const registry = new Map();
274
+ const resolved = new Map();
275
+ /** (Experimental) This function restructures the schema such that each distinct sub-schema is stored exactly once in a $defs object and keyed by content hash. */
276
+ export function Intern(...args) {
277
+ const [context, schema] = Arguments.Match(args, {
278
+ 2: (context, schema) => [context, schema],
279
+ 1: (schema) => [{}, schema]
280
+ });
281
+ registry.clear();
282
+ resolved.clear();
283
+ if (Schema.IsSchemaBoolean(schema))
284
+ return BooleanEntry(schema);
285
+ const defs = Schema.IsDefs(schema) ? schema.$defs : {};
286
+ const rootStack = Stack.Stack({ ...context, ...defs }, schema);
287
+ const { schema: entry, stack } = Schema.IsRef(schema) ? ResolveRef(Stack.NextStack(rootStack, schema), schema.$ref) : { schema, stack: rootStack };
288
+ if (Schema.IsSchemaBoolean(entry))
289
+ return BooleanEntry(entry);
290
+ const ref_context = { stack, resolving: new Map() };
291
+ const result = FromSchema(ref_context, entry);
292
+ return { $ref: result.$ref, $defs: Object.fromEntries(registry) };
293
+ }
@@ -0,0 +1,2 @@
1
+ import type { XMetaSchemaObject } from './schema.mjs';
2
+ export declare const Draft_2019_09: XMetaSchemaObject;
@@ -0,0 +1,288 @@
1
+ export const Draft_2019_09 = {
2
+ '$schema': 'https://json-schema.org/draft/2019-09/schema',
3
+ '$id': 'https://json-schema.org/draft/2019-09/schema',
4
+ '$vocabulary': {
5
+ 'https://json-schema.org/draft/2019-09/vocab/core': true,
6
+ 'https://json-schema.org/draft/2019-09/vocab/applicator': true,
7
+ 'https://json-schema.org/draft/2019-09/vocab/validation': true,
8
+ 'https://json-schema.org/draft/2019-09/vocab/meta-data': true,
9
+ 'https://json-schema.org/draft/2019-09/vocab/format': false,
10
+ 'https://json-schema.org/draft/2019-09/vocab/content': true
11
+ },
12
+ '$recursiveAnchor': true,
13
+ 'title': 'Core and Validation specifications meta-schema',
14
+ 'allOf': [
15
+ {
16
+ '$schema': 'https://json-schema.org/draft/2019-09/schema',
17
+ '$id': 'https://json-schema.org/draft/2019-09/meta/core',
18
+ '$recursiveAnchor': true,
19
+ 'title': 'Core vocabulary meta-schema',
20
+ 'type': ['object', 'boolean'],
21
+ 'properties': {
22
+ '$id': {
23
+ 'type': 'string',
24
+ 'format': 'uri-reference',
25
+ '$comment': 'Non-empty fragments not allowed.',
26
+ 'pattern': '^[^#]*#?$'
27
+ },
28
+ '$schema': {
29
+ 'type': 'string',
30
+ 'format': 'uri'
31
+ },
32
+ '$anchor': {
33
+ 'type': 'string',
34
+ 'pattern': '^[A-Za-z][-A-Za-z0-9.:_]*$'
35
+ },
36
+ '$ref': {
37
+ 'type': 'string',
38
+ 'format': 'uri-reference'
39
+ },
40
+ '$recursiveRef': {
41
+ 'type': 'string',
42
+ 'format': 'uri-reference'
43
+ },
44
+ '$recursiveAnchor': {
45
+ 'type': 'boolean',
46
+ 'default': false
47
+ },
48
+ '$vocabulary': {
49
+ 'type': 'object',
50
+ 'propertyNames': {
51
+ 'type': 'string',
52
+ 'format': 'uri'
53
+ },
54
+ 'additionalProperties': {
55
+ 'type': 'boolean'
56
+ }
57
+ },
58
+ '$comment': {
59
+ 'type': 'string'
60
+ },
61
+ '$defs': {
62
+ 'type': 'object',
63
+ 'additionalProperties': { '$recursiveRef': '#' },
64
+ 'default': {}
65
+ }
66
+ }
67
+ },
68
+ {
69
+ '$schema': 'https://json-schema.org/draft/2019-09/schema',
70
+ '$id': 'https://json-schema.org/draft/2019-09/meta/applicator',
71
+ '$recursiveAnchor': true,
72
+ 'title': 'Applicator vocabulary meta-schema',
73
+ 'type': ['object', 'boolean'],
74
+ 'properties': {
75
+ 'additionalItems': { '$recursiveRef': '#' },
76
+ 'unevaluatedItems': { '$recursiveRef': '#' },
77
+ 'items': {
78
+ 'anyOf': [
79
+ { '$recursiveRef': '#' },
80
+ { '$ref': '#/$defs/schemaArray' }
81
+ ]
82
+ },
83
+ 'contains': { '$recursiveRef': '#' },
84
+ 'additionalProperties': { '$recursiveRef': '#' },
85
+ 'unevaluatedProperties': { '$recursiveRef': '#' },
86
+ 'properties': {
87
+ 'type': 'object',
88
+ 'additionalProperties': { '$recursiveRef': '#' },
89
+ 'default': {}
90
+ },
91
+ 'patternProperties': {
92
+ 'type': 'object',
93
+ 'additionalProperties': { '$recursiveRef': '#' },
94
+ 'propertyNames': { 'format': 'regex' },
95
+ 'default': {}
96
+ },
97
+ 'dependentSchemas': {
98
+ 'type': 'object',
99
+ 'additionalProperties': {
100
+ '$recursiveRef': '#'
101
+ }
102
+ },
103
+ 'propertyNames': { '$recursiveRef': '#' },
104
+ 'if': { '$recursiveRef': '#' },
105
+ 'then': { '$recursiveRef': '#' },
106
+ 'else': { '$recursiveRef': '#' },
107
+ 'allOf': { '$ref': '#/$defs/schemaArray' },
108
+ 'anyOf': { '$ref': '#/$defs/schemaArray' },
109
+ 'oneOf': { '$ref': '#/$defs/schemaArray' },
110
+ 'not': { '$recursiveRef': '#' }
111
+ },
112
+ '$defs': {
113
+ 'schemaArray': {
114
+ 'type': 'array',
115
+ 'minItems': 1,
116
+ 'items': { '$recursiveRef': '#' }
117
+ }
118
+ }
119
+ },
120
+ {
121
+ '$schema': 'https://json-schema.org/draft/2019-09/schema',
122
+ '$id': 'https://json-schema.org/draft/2019-09/meta/validation',
123
+ '$recursiveAnchor': true,
124
+ 'title': 'Validation vocabulary meta-schema',
125
+ 'type': ['object', 'boolean'],
126
+ 'properties': {
127
+ 'multipleOf': {
128
+ 'type': 'number',
129
+ 'exclusiveMinimum': 0
130
+ },
131
+ 'maximum': {
132
+ 'type': 'number'
133
+ },
134
+ 'exclusiveMaximum': {
135
+ 'type': 'number'
136
+ },
137
+ 'minimum': {
138
+ 'type': 'number'
139
+ },
140
+ 'exclusiveMinimum': {
141
+ 'type': 'number'
142
+ },
143
+ 'maxLength': { '$ref': '#/$defs/nonNegativeInteger' },
144
+ 'minLength': { '$ref': '#/$defs/nonNegativeIntegerDefault0' },
145
+ 'pattern': {
146
+ 'type': 'string',
147
+ 'format': 'regex'
148
+ },
149
+ 'maxItems': { '$ref': '#/$defs/nonNegativeInteger' },
150
+ 'minItems': { '$ref': '#/$defs/nonNegativeIntegerDefault0' },
151
+ 'uniqueItems': {
152
+ 'type': 'boolean',
153
+ 'default': false
154
+ },
155
+ 'maxContains': { '$ref': '#/$defs/nonNegativeInteger' },
156
+ 'minContains': {
157
+ '$ref': '#/$defs/nonNegativeInteger',
158
+ 'default': 1
159
+ },
160
+ 'maxProperties': { '$ref': '#/$defs/nonNegativeInteger' },
161
+ 'minProperties': { '$ref': '#/$defs/nonNegativeIntegerDefault0' },
162
+ 'required': { '$ref': '#/$defs/stringArray' },
163
+ 'dependentRequired': {
164
+ 'type': 'object',
165
+ 'additionalProperties': {
166
+ '$ref': '#/$defs/stringArray'
167
+ }
168
+ },
169
+ 'const': true,
170
+ 'enum': {
171
+ 'type': 'array',
172
+ 'items': true
173
+ },
174
+ 'type': {
175
+ 'anyOf': [
176
+ { '$ref': '#/$defs/simpleTypes' },
177
+ {
178
+ 'type': 'array',
179
+ 'items': { '$ref': '#/$defs/simpleTypes' },
180
+ 'minItems': 1,
181
+ 'uniqueItems': true
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ '$defs': {
187
+ 'nonNegativeInteger': {
188
+ 'type': 'integer',
189
+ 'minimum': 0
190
+ },
191
+ 'nonNegativeIntegerDefault0': {
192
+ '$ref': '#/$defs/nonNegativeInteger',
193
+ 'default': 0
194
+ },
195
+ 'simpleTypes': {
196
+ 'enum': [
197
+ 'array',
198
+ 'boolean',
199
+ 'integer',
200
+ 'null',
201
+ 'number',
202
+ 'object',
203
+ 'string'
204
+ ]
205
+ },
206
+ 'stringArray': {
207
+ 'type': 'array',
208
+ 'items': { 'type': 'string' },
209
+ 'uniqueItems': true,
210
+ 'default': []
211
+ }
212
+ }
213
+ },
214
+ {
215
+ '$schema': 'https://json-schema.org/draft/2019-09/schema',
216
+ '$id': 'https://json-schema.org/draft/2019-09/meta/meta-data',
217
+ '$recursiveAnchor': true,
218
+ 'title': 'Meta-data vocabulary meta-schema',
219
+ 'type': ['object', 'boolean'],
220
+ 'properties': {
221
+ 'title': {
222
+ 'type': 'string'
223
+ },
224
+ 'description': {
225
+ 'type': 'string'
226
+ },
227
+ 'default': true,
228
+ 'deprecated': {
229
+ 'type': 'boolean',
230
+ 'default': false
231
+ },
232
+ 'readOnly': {
233
+ 'type': 'boolean',
234
+ 'default': false
235
+ },
236
+ 'writeOnly': {
237
+ 'type': 'boolean',
238
+ 'default': false
239
+ },
240
+ 'examples': {
241
+ 'type': 'array',
242
+ 'items': true
243
+ }
244
+ }
245
+ },
246
+ {
247
+ '$schema': 'https://json-schema.org/draft/2019-09/schema',
248
+ '$id': 'https://json-schema.org/draft/2019-09/meta/format',
249
+ '$recursiveAnchor': true,
250
+ 'title': 'Format vocabulary meta-schema',
251
+ 'type': ['object', 'boolean'],
252
+ 'properties': {
253
+ 'format': { 'type': 'string' }
254
+ }
255
+ },
256
+ {
257
+ '$schema': 'https://json-schema.org/draft/2019-09/schema',
258
+ '$id': 'https://json-schema.org/draft/2019-09/meta/content',
259
+ '$recursiveAnchor': true,
260
+ 'title': 'Content vocabulary meta-schema',
261
+ 'type': ['object', 'boolean'],
262
+ 'properties': {
263
+ 'contentMediaType': { 'type': 'string' },
264
+ 'contentEncoding': { 'type': 'string' },
265
+ 'contentSchema': { '$recursiveRef': '#' }
266
+ }
267
+ }
268
+ ],
269
+ 'type': ['object', 'boolean'],
270
+ 'properties': {
271
+ 'definitions': {
272
+ '$comment': 'While no longer an official keyword as it is replaced by $defs, this keyword is retained in the meta-schema to prevent incompatible extensions as it remains in common use.',
273
+ 'type': 'object',
274
+ 'additionalProperties': { '$recursiveRef': '#' },
275
+ 'default': {}
276
+ },
277
+ 'dependencies': {
278
+ '$comment': '"dependencies" is no longer a keyword, but schema authors should avoid redefining it to facilitate a smooth transition to "dependentSchemas" and "dependentRequired"',
279
+ 'type': 'object',
280
+ 'additionalProperties': {
281
+ 'anyOf': [
282
+ { '$recursiveRef': '#' },
283
+ { '$ref': 'meta/validation#/$defs/stringArray' }
284
+ ]
285
+ }
286
+ }
287
+ }
288
+ };
@@ -0,0 +1,2 @@
1
+ import type { XMetaSchemaObject } from './schema.mjs';
2
+ export declare const Draft_2020_12: XMetaSchemaObject;