@openclaw/google-meet 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.
- package/assets/activity.svg +1 -1
- package/dist/.setup/{chrome-create-DIcW4QCh.mjs → chrome-create-BlDlV2YP.mjs} +11 -30
- package/dist/.setup/{cli-9linTFHb.mjs → cli-C-MrY7IZ.mjs} +275 -309
- package/dist/.setup/{cli-export-CaDYoSP8.mjs → cli-export-6eiywS3T.mjs} +16 -35
- package/dist/.setup/{cli-output-mode-BJSm88N9.mjs → cli-output-mode-DztqqVeZ.mjs} +5 -6
- package/dist/.setup/config-CMTw0Anh.mjs +110 -0
- package/dist/.setup/{create-D3fHR8uX.mjs → create-DMk4zbMq.mjs} +23 -9
- package/dist/.setup/{google-meet-platform-adapter-D7poqL1J.mjs → google-meet-platform-adapter-DgchqNLV.mjs} +52 -18
- package/dist/.setup/{node-host-B196lvNZ.mjs → node-host-BIZD9InM.mjs} +2 -2
- package/dist/.setup/{node-invoke-policy-BzRAe25r.mjs → node-invoke-policy-bg7p_BWB.mjs} +1 -1
- package/dist/.setup/oauth-DZkuGMs1.mjs +1 -0
- package/dist/.setup/{plugin-helpers-Buhixxsx.mjs → plugin-helpers-ChCBuyAl.mjs} +363 -69
- package/dist/.setup/{plugin-registration-B_nOxAym.mjs → plugin-registration-CAW7_zO_.mjs} +8 -8
- package/dist/.setup/{runtime-D-dwEsSW.mjs → runtime-Cyc6bv1i.mjs} +37 -38
- package/dist/.source-module-urls/c06239f68b6f4959b5d3db7e0cee004911d8eb43092f4135c729b507e37f6333.json +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/doctor-contract-api.js +25 -21
- package/dist/index.js +14 -13
- package/node_modules/typebox/build/format/duration.d.mts +2 -2
- package/node_modules/typebox/build/format/duration.mjs +2 -2
- package/node_modules/typebox/build/format/idn_email.d.mts +1 -0
- package/node_modules/typebox/build/format/idn_email.mjs +1 -0
- package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -1
- package/node_modules/typebox/build/format/idn_hostname.mjs +1 -1
- package/node_modules/typebox/build/format/ipv4.d.mts +2 -2
- package/node_modules/typebox/build/format/ipv4.mjs +2 -2
- package/node_modules/typebox/build/format/ipv6.d.mts +1 -1
- package/node_modules/typebox/build/format/ipv6.mjs +1 -1
- package/node_modules/typebox/build/format/relative_json_pointer.d.mts +2 -2
- package/node_modules/typebox/build/format/relative_json_pointer.mjs +2 -2
- package/node_modules/typebox/build/schema/build.mjs +1 -0
- package/node_modules/typebox/build/schema/engine/_unique.d.mts +4 -2
- package/node_modules/typebox/build/schema/engine/_unique.mjs +7 -3
- package/node_modules/typebox/build/schema/engine/additionalItems.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/additionalProperties.d.mts +0 -3
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +15 -17
- package/node_modules/typebox/build/schema/engine/contains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/index.d.mts +1 -0
- package/node_modules/typebox/build/schema/engine/index.mjs +1 -0
- package/node_modules/typebox/build/schema/engine/items.mjs +7 -4
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/minContains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/unevaluatedItems.mjs +2 -2
- package/node_modules/typebox/build/schema/engine/unevaluatedProperties.mjs +2 -2
- package/node_modules/typebox/build/system/hashing/hash.mjs +63 -34
- package/node_modules/typebox/build/system/locale/en_US.mjs +2 -1
- package/node_modules/typebox/build/system/memory/assign.d.mts +2 -8
- package/node_modules/typebox/build/system/memory/assign.mjs +13 -6
- package/node_modules/typebox/build/system/memory/clone.d.mts +4 -5
- package/node_modules/typebox/build/system/memory/clone.mjs +8 -96
- package/node_modules/typebox/build/system/memory/create.d.mts +1 -5
- package/node_modules/typebox/build/system/memory/create.mjs +18 -13
- package/node_modules/typebox/build/system/memory/deep.d.mts +2 -0
- package/node_modules/typebox/build/system/memory/deep.mjs +108 -0
- package/node_modules/typebox/build/system/memory/discard.d.mts +1 -1
- package/node_modules/typebox/build/system/memory/discard.mjs +9 -8
- package/node_modules/typebox/build/system/memory/finalize.d.mts +4 -0
- package/node_modules/typebox/build/system/memory/finalize.mjs +30 -0
- package/node_modules/typebox/build/system/memory/keys.d.mts +2 -0
- package/node_modules/typebox/build/system/memory/keys.mjs +8 -0
- package/node_modules/typebox/build/system/memory/update.d.mts +1 -4
- package/node_modules/typebox/build/system/memory/update.mjs +43 -16
- package/node_modules/typebox/build/type/engine/call/index.d.mts +1 -0
- package/node_modules/typebox/build/type/engine/call/index.mjs +1 -0
- package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +2 -24
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +2 -29
- package/node_modules/typebox/build/type/engine/evaluate/index.d.mts +1 -0
- package/node_modules/typebox/build/type/engine/evaluate/index.mjs +1 -0
- package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +5 -1
- package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +6 -1
- package/node_modules/typebox/build/type/engine/evaluate/property.d.mts +30 -0
- package/node_modules/typebox/build/type/engine/evaluate/property.mjs +29 -0
- package/node_modules/typebox/build/type/engine/immutable/instantiate_add.d.mts +1 -3
- package/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +1 -4
- package/node_modules/typebox/build/type/engine/object/from_intersect.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/object/from_intersect.mjs +2 -2
- package/node_modules/typebox/build/type/engine/object/from_union.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/object/from_union.mjs +2 -2
- package/node_modules/typebox/build/type/engine/optional/instantiate_add.d.mts +1 -3
- package/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +1 -4
- package/node_modules/typebox/build/type/engine/readonly/instantiate_add.d.mts +1 -3
- package/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +1 -4
- package/node_modules/typebox/build/type/engine/this/index.d.mts +1 -0
- package/node_modules/typebox/build/type/engine/this/index.mjs +1 -0
- package/node_modules/typebox/build/value/clone/clone.d.mts +4 -3
- package/node_modules/typebox/build/value/clone/clone.mjs +5 -7
- package/node_modules/typebox/build/value/repair/from_cyclic.d.mts +2 -0
- package/node_modules/typebox/build/value/repair/from_cyclic.mjs +6 -0
- package/node_modules/typebox/build/value/shared/union_priority_sort.mjs +25 -14
- package/node_modules/typebox/package.json +1 -1
- package/node_modules/typebox/readme.md +1 -1
- package/package.json +5 -5
- package/dist/.setup/config-Cu3zsl_3.mjs +0 -239
- package/dist/.setup/oauth-DGv28ZgA.mjs +0 -158
- package/node_modules/typebox/build/system/memory/freeze.d.mts +0 -4
- package/node_modules/typebox/build/system/memory/freeze.mjs +0 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import * as Schema from '../types/index.mjs';
|
|
3
|
-
import
|
|
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
|
|
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), [
|
|
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
|
|
54
|
-
|
|
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
|
|
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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import * as Schema from '../types/index.mjs';
|
|
3
|
-
import
|
|
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
|
// ------------------------------------------------------------------
|
|
@@ -13,12 +13,12 @@ function IsValid(schema) {
|
|
|
13
13
|
// Build
|
|
14
14
|
// ------------------------------------------------------------------
|
|
15
15
|
function BuildMinContainsStandard(stack, context, schema, value) {
|
|
16
|
-
const [item, index] = [Unique(), Unique()];
|
|
16
|
+
const [item, index] = [Unique.CreateUnique(), Unique.CreateUnique()];
|
|
17
17
|
const count = E.Counted(value, [item, index], E.And(BuildSchema(stack, context, schema.contains, item), context.AddIndex(index)));
|
|
18
18
|
return E.IsGreaterEqualThan(count, E.Constant(schema.minContains));
|
|
19
19
|
}
|
|
20
20
|
function BuildMinContainsFast(stack, context, schema, value) {
|
|
21
|
-
const [item] = [Unique()];
|
|
21
|
+
const [item] = [Unique.CreateUnique()];
|
|
22
22
|
const count = E.Counted(value, [item, '_'], BuildSchema(stack, context, schema.contains, item));
|
|
23
23
|
return E.IsGreaterEqualThan(count, E.Constant(schema.minContains));
|
|
24
24
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import { Reducer } from './_reducer.mjs';
|
|
3
|
-
import
|
|
3
|
+
import * as Unique from './_unique.mjs';
|
|
4
4
|
import { CheckContext, ErrorContext } from './_context.mjs';
|
|
5
5
|
import { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';
|
|
6
6
|
import { EmitGuard as E, Guard as G } from '../../guard/index.mjs';
|
|
@@ -11,7 +11,7 @@ function BuildOneOfStandard(stack, context, schema, value) {
|
|
|
11
11
|
return Reducer(stack, context, schema.oneOf, value, E.IsEqual(E.Member('results', 'length'), E.Constant(1)));
|
|
12
12
|
}
|
|
13
13
|
function BuildOneOfFast(stack, context, schema, value) {
|
|
14
|
-
const [result] = [Unique()];
|
|
14
|
+
const [result] = [Unique.CreateUnique()];
|
|
15
15
|
const results = E.ArrayLiteral(schema.oneOf.map((schema) => BuildSchema(stack, context, schema, value)));
|
|
16
16
|
const count = E.Counted(results, [result, '_'], E.IsEqual(result, E.Constant(true)));
|
|
17
17
|
return E.IsEqual(count, E.Constant(1));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
|
+
import * as Unique from './_unique.mjs';
|
|
2
3
|
import * as Externals from './_externals.mjs';
|
|
3
4
|
import * as Pathing from './_pathing.mjs';
|
|
4
|
-
import { Unique } from './_unique.mjs';
|
|
5
5
|
import { UnicodeRegExp } from './_regexp.mjs';
|
|
6
6
|
import { BuildSchemaPushStack, CheckSchemaPushStack, ErrorSchemaPushStack } from './schema.mjs';
|
|
7
7
|
import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
@@ -10,7 +10,7 @@ import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
|
10
10
|
// ------------------------------------------------------------------
|
|
11
11
|
export function BuildPatternProperties(stack, context, schema, value) {
|
|
12
12
|
return E.ReduceAnd(G.Entries(schema.patternProperties).map(([pattern, schema]) => {
|
|
13
|
-
const [key, prop] = [Unique(), Unique()];
|
|
13
|
+
const [key, prop] = [Unique.CreateUnique(), Unique.CreateUnique()];
|
|
14
14
|
const regexp = Externals.CreateVariable(UnicodeRegExp(pattern));
|
|
15
15
|
const notKey = E.Not(E.Call(E.Member(regexp, 'test'), [key]));
|
|
16
16
|
const isSchema = BuildSchemaPushStack(stack, context, schema, prop);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import * as Pathing from './_pathing.mjs';
|
|
3
|
-
import
|
|
3
|
+
import * as Unique from './_unique.mjs';
|
|
4
4
|
import { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';
|
|
5
5
|
import { EmitGuard as E, Guard as G } from '../../guard/index.mjs';
|
|
6
6
|
// ------------------------------------------------------------------
|
|
7
7
|
// Build
|
|
8
8
|
// ------------------------------------------------------------------
|
|
9
9
|
export function BuildPropertyNames(stack, context, schema, value) {
|
|
10
|
-
const [key, _index] = [Unique(), Unique()];
|
|
10
|
+
const [key, _index] = [Unique.CreateUnique(), Unique.CreateUnique()];
|
|
11
11
|
return E.Every(E.Keys(value), E.Constant(0), [key, _index], BuildSchema(stack, context, schema.propertyNames, key));
|
|
12
12
|
}
|
|
13
13
|
// ------------------------------------------------------------------
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
|
-
import
|
|
2
|
+
import * as Unique from './_unique.mjs';
|
|
3
3
|
import { ErrorContext } from './_context.mjs';
|
|
4
4
|
import { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';
|
|
5
5
|
import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
@@ -7,7 +7,7 @@ import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
|
7
7
|
// Build
|
|
8
8
|
// ------------------------------------------------------------------
|
|
9
9
|
export function BuildUnevaluatedItems(stack, context, schema, value) {
|
|
10
|
-
const [index, item] = [Unique(), Unique()];
|
|
10
|
+
const [index, item] = [Unique.CreateUnique(), Unique.CreateUnique()];
|
|
11
11
|
const indices = E.Call(E.Member('context', 'GetIndices'), []);
|
|
12
12
|
const hasIndex = E.Call(E.Member('indices', 'has'), [index]);
|
|
13
13
|
const isSchema = BuildSchema(stack, context, schema.unevaluatedItems, item);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
|
-
import
|
|
2
|
+
import * as Unique from './_unique.mjs';
|
|
3
3
|
import { ErrorContext } from './_context.mjs';
|
|
4
4
|
import { BuildSchema, CheckSchema, ErrorSchema } from './schema.mjs';
|
|
5
5
|
import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
@@ -7,7 +7,7 @@ import { Guard as G, EmitGuard as E } from '../../guard/index.mjs';
|
|
|
7
7
|
// Build
|
|
8
8
|
// ------------------------------------------------------------------
|
|
9
9
|
export function BuildUnevaluatedProperties(stack, context, schema, value) {
|
|
10
|
-
const [key, prop] = [Unique(), Unique()];
|
|
10
|
+
const [key, prop] = [Unique.CreateUnique(), Unique.CreateUnique()];
|
|
11
11
|
const keys = E.Call(E.Member('context', 'GetKeys'), []);
|
|
12
12
|
const hasKey = E.Call(E.Member('keys', 'has'), [key]);
|
|
13
13
|
const addKey = E.Call(E.Member('context', 'AddKey'), [key]);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// deno-fmt-ignore-file
|
|
2
2
|
import { Unreachable } from '../unreachable/index.mjs';
|
|
3
|
-
import {
|
|
3
|
+
import { GlobalsGuard, Guard } from '../../guard/index.mjs';
|
|
4
4
|
// ------------------------------------------------------------------
|
|
5
5
|
// InstanceKeys
|
|
6
6
|
//
|
|
7
|
-
// Retrieves all enumerable and non-enumerable own property keys
|
|
8
|
-
// and inherited prototype keys (excluding symbols and the 'constructor')
|
|
7
|
+
// Retrieves all enumerable and non-enumerable own property keys
|
|
8
|
+
// and inherited prototype keys (excluding symbols and the 'constructor')
|
|
9
9
|
// from an object instance.
|
|
10
10
|
//
|
|
11
|
-
// This function is useful for differentiating between class instances
|
|
12
|
-
// based on their structural keys rather than relying on the
|
|
13
|
-
// constructor name. It provides a more reliable structural comparison
|
|
11
|
+
// This function is useful for differentiating between class instances
|
|
12
|
+
// based on their structural keys rather than relying on the
|
|
13
|
+
// constructor name. It provides a more reliable structural comparison
|
|
14
14
|
// by capturing both own and prototype properties.
|
|
15
15
|
//
|
|
16
16
|
// ------------------------------------------------------------------
|
|
@@ -40,38 +40,57 @@ function IsIEEE754(value) {
|
|
|
40
40
|
// ------------------------------------------------------------------
|
|
41
41
|
// ByteMarker
|
|
42
42
|
// ------------------------------------------------------------------
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
})(ByteMarker || (ByteMarker = {}));
|
|
43
|
+
const ByteMarker = {
|
|
44
|
+
Array: 0x0,
|
|
45
|
+
BigInt: 0x1,
|
|
46
|
+
Boolean: 0x2,
|
|
47
|
+
Date: 0x3,
|
|
48
|
+
Constructor: 0x4,
|
|
49
|
+
Function: 0x5,
|
|
50
|
+
Null: 0x6,
|
|
51
|
+
Number: 0x7,
|
|
52
|
+
Object: 0x8,
|
|
53
|
+
RegExp: 0x9,
|
|
54
|
+
String: 0xA,
|
|
55
|
+
Symbol: 0xB,
|
|
56
|
+
TypeArray: 0xC,
|
|
57
|
+
Undefined: 0xD
|
|
58
|
+
};
|
|
60
59
|
// ------------------------------------------------------------------
|
|
61
60
|
// State
|
|
62
61
|
// ------------------------------------------------------------------
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
//
|
|
63
|
+
// The 64-bit accumulator is held as four 16-bit limbs (A0 is the least
|
|
64
|
+
// significant) so the FNV1A64 operation can be computed with number
|
|
65
|
+
// arithmetic, avoiding a BigInt multiply and modulo for every byte.
|
|
66
|
+
//
|
|
67
|
+
// Offset: 14695981039346656037 (0xCBF29CE484222325)
|
|
68
|
+
//
|
|
69
|
+
// ------------------------------------------------------------------
|
|
70
|
+
let A0 = 0x2325, A1 = 0x8422, A2 = 0x9CE4, A3 = 0xCBF2;
|
|
66
71
|
const F64 = new Float64Array(1);
|
|
67
72
|
const F64In = new DataView(F64.buffer);
|
|
68
73
|
const F64Out = new Uint8Array(F64.buffer);
|
|
69
74
|
// ------------------------------------------------------------------
|
|
70
75
|
// Operation
|
|
76
|
+
//
|
|
77
|
+
// Prime: 1099511628211 (0x100000001B3 = 2^40 + 0x1B3)
|
|
78
|
+
//
|
|
79
|
+
// The multiply is computed as (A * 0x1B3) + (A << 40) modulo 2^64,
|
|
80
|
+
// where (A << 40) adds (A0 << 8) to the third limb and (A1 << 8)
|
|
81
|
+
// to the fourth.
|
|
82
|
+
//
|
|
71
83
|
// ------------------------------------------------------------------
|
|
72
84
|
function FNV1A64_OP(byte) {
|
|
73
|
-
|
|
74
|
-
|
|
85
|
+
const L0 = A0 ^ byte;
|
|
86
|
+
const T0 = L0 * 0x1B3;
|
|
87
|
+
const T1 = A1 * 0x1B3 + (T0 >>> 16);
|
|
88
|
+
const T2 = A2 * 0x1B3 + (T1 >>> 16) + (L0 << 8);
|
|
89
|
+
const T3 = A3 * 0x1B3 + (T2 >>> 16) + (A1 << 8);
|
|
90
|
+
A0 = T0 & 0xFFFF;
|
|
91
|
+
A1 = T1 & 0xFFFF;
|
|
92
|
+
A2 = T2 & 0xFFFF;
|
|
93
|
+
A3 = T3 & 0xFFFF;
|
|
75
94
|
}
|
|
76
95
|
// ------------------------------------------------------------------
|
|
77
96
|
// Array
|
|
@@ -159,8 +178,15 @@ function FromRegExp(value) {
|
|
|
159
178
|
const encoder = new TextEncoder();
|
|
160
179
|
function FromString(value) {
|
|
161
180
|
FNV1A64_OP(ByteMarker.String);
|
|
162
|
-
for (
|
|
163
|
-
|
|
181
|
+
for (let i = 0; i < value.length; i++) {
|
|
182
|
+
const code = value.charCodeAt(i);
|
|
183
|
+
if (code > 0x7F) {
|
|
184
|
+
for (const byte of encoder.encode(value.slice(i))) {
|
|
185
|
+
FNV1A64_OP(byte);
|
|
186
|
+
}
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
FNV1A64_OP(code);
|
|
164
190
|
}
|
|
165
191
|
}
|
|
166
192
|
// ------------------------------------------------------------------
|
|
@@ -220,13 +246,16 @@ function FromValue(value) {
|
|
|
220
246
|
// ------------------------------------------------------------------
|
|
221
247
|
// Hash
|
|
222
248
|
// ------------------------------------------------------------------
|
|
249
|
+
function Hex(limb) {
|
|
250
|
+
return limb.toString(16).padStart(4, '0');
|
|
251
|
+
}
|
|
223
252
|
/** Generates a FNV1A-64 non cryptographic hash of the given value */
|
|
224
253
|
export function HashCode(value) {
|
|
225
|
-
|
|
226
|
-
FromValue(value);
|
|
227
|
-
return Accumulator;
|
|
254
|
+
return BigInt(`0x${Hash(value)}`);
|
|
228
255
|
}
|
|
229
256
|
/** Generates a FNV1A-64 non cryptographic hash of the given value */
|
|
230
257
|
export function Hash(value) {
|
|
231
|
-
|
|
258
|
+
A0 = 0x2325, A1 = 0x8422, A2 = 0x9CE4, A3 = 0xCBF2;
|
|
259
|
+
FromValue(value);
|
|
260
|
+
return `${Hex(A3)}${Hex(A2)}${Hex(A1)}${Hex(A0)}`;
|
|
232
261
|
}
|
|
@@ -33,7 +33,8 @@ export function en_US(error) {
|
|
|
33
33
|
case 'unevaluatedProperties': return 'must not have unevaluated properties';
|
|
34
34
|
case 'uniqueItems': return `must not have duplicate items`;
|
|
35
35
|
case '~refine': return error.params.message;
|
|
36
|
-
// deno-coverage-ignore - unreachable
|
|
36
|
+
// deno-coverage-ignore-start - unreachable
|
|
37
37
|
default: return 'an unknown validation error occurred';
|
|
38
|
+
// deno-coverage-ignore-stop
|
|
38
39
|
}
|
|
39
40
|
}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
type ObjectLike = Record<PropertyKey, any>;
|
|
2
|
-
/**
|
|
3
|
-
* Performs an Object assign using the Left and Right object types. We track this operation as it
|
|
4
|
-
* creates a new GC handle per assignment.
|
|
5
|
-
*/
|
|
2
|
+
/** Performs an Object assign using the Left and Right object types. */
|
|
6
3
|
export type TAssign<Left extends ObjectLike, Right extends ObjectLike, Assigned extends ObjectLike = Omit<Left, keyof Right> & Right> = {
|
|
7
4
|
[Key in keyof Assigned]: Assigned[Key];
|
|
8
5
|
} & {};
|
|
9
|
-
/**
|
|
10
|
-
* Performs an Object assign using the Left and Right object types. We track this operation as it
|
|
11
|
-
* creates a new GC handle per assignment.
|
|
12
|
-
*/
|
|
6
|
+
/** Performs an Object assign using the Left and Right object types. */
|
|
13
7
|
export declare function Assign<Left extends ObjectLike, Right extends ObjectLike>(left: Left, right: Right): TAssign<Left, Right>;
|
|
14
8
|
export {};
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
// deno-lint-ignore-file ban-types no-explicit-any
|
|
2
2
|
// deno-fmt-ignore-file
|
|
3
3
|
import { Metrics } from './metrics.mjs';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* creates a new GC handle per assignment.
|
|
8
|
-
*/
|
|
4
|
+
import { Finalize } from './finalize.mjs';
|
|
5
|
+
import { Keys } from './keys.mjs';
|
|
6
|
+
/** Performs an Object assign using the Left and Right object types. */
|
|
9
7
|
export function Assign(left, right) {
|
|
10
8
|
Metrics.assign += 1;
|
|
11
|
-
|
|
9
|
+
const result = {}, rightKeys = Keys(right), leftKeys = Keys(left);
|
|
10
|
+
for (const key of leftKeys) {
|
|
11
|
+
if (rightKeys.includes(key))
|
|
12
|
+
continue;
|
|
13
|
+
Object.defineProperty(result, key, Object.getOwnPropertyDescriptor(left, key));
|
|
14
|
+
}
|
|
15
|
+
for (const key of rightKeys) {
|
|
16
|
+
Object.defineProperty(result, key, Object.getOwnPropertyDescriptor(right, key));
|
|
17
|
+
}
|
|
18
|
+
return Finalize(result);
|
|
12
19
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export declare function Clone<Value extends unknown = unknown>(value: Value): Value;
|
|
1
|
+
type ObjectLike = Record<PropertyKey, any>;
|
|
2
|
+
/** Returns a shallow clone of the given object. */
|
|
3
|
+
export declare function Clone<Value extends ObjectLike = ObjectLike>(value: Value): Value;
|
|
4
|
+
export {};
|
|
@@ -1,34 +1,19 @@
|
|
|
1
|
+
// deno-lint-ignore-file no-explicit-any
|
|
1
2
|
// deno-fmt-ignore-file
|
|
2
|
-
import { Guard
|
|
3
|
+
import { Guard } from '../../guard/index.mjs';
|
|
3
4
|
import { Metrics } from './metrics.mjs';
|
|
5
|
+
import { Keys } from './keys.mjs';
|
|
4
6
|
// ------------------------------------------------------------------
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
// TypeBox does not clone arbitrary class instances. Class instances
|
|
8
|
-
// cannot be safely cloned without potentially breaking private
|
|
9
|
-
// members of the instance.
|
|
10
|
-
//
|
|
11
|
-
// ------------------------------------------------------------------
|
|
12
|
-
function FromClassInstance(value) {
|
|
13
|
-
return value; // atomic
|
|
14
|
-
}
|
|
15
|
-
// ------------------------------------------------------------------
|
|
16
|
-
// SchemaObject
|
|
17
|
-
//
|
|
18
|
-
// Schema objects have non-enumerable properties that MUST be preserved
|
|
19
|
-
// on Clone. The following is the optimal path these objects.
|
|
7
|
+
// Clone
|
|
20
8
|
// ------------------------------------------------------------------
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
function FromSchemaObject(value) {
|
|
9
|
+
/** Returns a shallow clone of the given object. */
|
|
10
|
+
export function Clone(value) {
|
|
11
|
+
Metrics.clone += 1;
|
|
26
12
|
const result = {};
|
|
27
|
-
for (const key of
|
|
13
|
+
for (const key of Keys(value)) {
|
|
28
14
|
if (Guard.IsUnsafePropertyKey(key))
|
|
29
15
|
continue; // (ignore: prototype-pollution)
|
|
30
16
|
const descriptor = Object.getOwnPropertyDescriptor(value, key); // safe-name!
|
|
31
|
-
descriptor.value = FromValue(descriptor.value);
|
|
32
17
|
if (Guard.IsEqual(descriptor.enumerable, true)) {
|
|
33
18
|
result[key] = descriptor.value;
|
|
34
19
|
}
|
|
@@ -38,76 +23,3 @@ function FromSchemaObject(value) {
|
|
|
38
23
|
}
|
|
39
24
|
return result;
|
|
40
25
|
}
|
|
41
|
-
// ------------------------------------------------------------------
|
|
42
|
-
// PlainObject
|
|
43
|
-
// ------------------------------------------------------------------
|
|
44
|
-
function FromPlainObject(value) {
|
|
45
|
-
const result = {};
|
|
46
|
-
for (const key of Guard.Keys(value)) {
|
|
47
|
-
if (Guard.IsUnsafePropertyKey(key))
|
|
48
|
-
continue; // (ignore: prototype-pollution)
|
|
49
|
-
result[key] = FromValue(value[key]);
|
|
50
|
-
}
|
|
51
|
-
for (const key of Guard.Symbols(value)) {
|
|
52
|
-
result[key] = FromValue(value[key]);
|
|
53
|
-
}
|
|
54
|
-
return result;
|
|
55
|
-
}
|
|
56
|
-
// ------------------------------------------------------------------
|
|
57
|
-
// Object
|
|
58
|
-
// ------------------------------------------------------------------
|
|
59
|
-
function FromObject(value) {
|
|
60
|
-
return (Guard.IsClassInstance(value) ? FromClassInstance(value) :
|
|
61
|
-
IsSchemaObject(value) ? FromSchemaObject(value) :
|
|
62
|
-
FromPlainObject(value));
|
|
63
|
-
}
|
|
64
|
-
// ------------------------------------------------------------------
|
|
65
|
-
// Array
|
|
66
|
-
// ------------------------------------------------------------------
|
|
67
|
-
function FromArray(value) {
|
|
68
|
-
return value.map((element) => FromValue(element));
|
|
69
|
-
}
|
|
70
|
-
// ------------------------------------------------------------------
|
|
71
|
-
// TypeArray
|
|
72
|
-
// ------------------------------------------------------------------
|
|
73
|
-
function FromTypedArray(value) {
|
|
74
|
-
return value.slice();
|
|
75
|
-
}
|
|
76
|
-
// ------------------------------------------------------------------
|
|
77
|
-
// RegExp
|
|
78
|
-
// ------------------------------------------------------------------
|
|
79
|
-
function FromRegExp(value) {
|
|
80
|
-
return new RegExp(value.source, value.flags);
|
|
81
|
-
}
|
|
82
|
-
// ------------------------------------------------------------------
|
|
83
|
-
// Map
|
|
84
|
-
// ------------------------------------------------------------------
|
|
85
|
-
function FromMap(value) {
|
|
86
|
-
return new Map(FromValue([...value.entries()]));
|
|
87
|
-
}
|
|
88
|
-
// ------------------------------------------------------------------
|
|
89
|
-
// Set
|
|
90
|
-
// ------------------------------------------------------------------
|
|
91
|
-
function FromSet(value) {
|
|
92
|
-
return new Set(FromValue([...value.values()]));
|
|
93
|
-
}
|
|
94
|
-
function FromValue(value) {
|
|
95
|
-
return (GlobalsGuard.IsTypeArray(value) ? FromTypedArray(value) :
|
|
96
|
-
GlobalsGuard.IsRegExp(value) ? FromRegExp(value) :
|
|
97
|
-
GlobalsGuard.IsMap(value) ? FromMap(value) :
|
|
98
|
-
GlobalsGuard.IsSet(value) ? FromSet(value) :
|
|
99
|
-
Guard.IsArray(value) ? FromArray(value) :
|
|
100
|
-
Guard.IsObject(value) ? FromObject(value) :
|
|
101
|
-
value);
|
|
102
|
-
}
|
|
103
|
-
// ------------------------------------------------------------------
|
|
104
|
-
// Clone
|
|
105
|
-
// ------------------------------------------------------------------
|
|
106
|
-
/**
|
|
107
|
-
* Returns a Clone of the given value. This function is similar to structuredClone()
|
|
108
|
-
* but also supports deep cloning instances of Map, Set and TypeArray.
|
|
109
|
-
*/
|
|
110
|
-
export function Clone(value) {
|
|
111
|
-
Metrics.clone += 1;
|
|
112
|
-
return FromValue(value);
|
|
113
|
-
}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
type ObjectLike = Record<PropertyKey, any>;
|
|
2
|
-
/**
|
|
3
|
-
* Creates an object with hidden, enumerable, and optional property sets. This function
|
|
4
|
-
* ensures types are instantiated according to configuration rules for enumerable and
|
|
5
|
-
* non-enumerable properties.
|
|
6
|
-
*/
|
|
2
|
+
/** Creates an object with hidden, enumerable, and optional property sets. */
|
|
7
3
|
export declare function Create(hidden: ObjectLike, enumerable: ObjectLike, options?: ObjectLike): ObjectLike;
|
|
8
4
|
export {};
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
// deno-lint-ignore-file no-explicit-any
|
|
2
2
|
import { Settings } from '../settings/index.mjs';
|
|
3
3
|
import { Metrics } from './metrics.mjs';
|
|
4
|
-
import {
|
|
5
|
-
|
|
4
|
+
import { Finalize } from './finalize.mjs';
|
|
5
|
+
// ------------------------------------------------------------------
|
|
6
|
+
// WithEnumerable
|
|
7
|
+
// ------------------------------------------------------------------
|
|
8
|
+
function WithEnumerable(left, right) {
|
|
9
|
+
return { ...left, ...right };
|
|
10
|
+
}
|
|
11
|
+
// ------------------------------------------------------------------
|
|
12
|
+
// WithHidden
|
|
13
|
+
// ------------------------------------------------------------------
|
|
14
|
+
function WithHidden(left, right) {
|
|
6
15
|
for (const key of Object.keys(right)) {
|
|
7
16
|
Object.defineProperty(left, key, {
|
|
8
17
|
configurable: true,
|
|
@@ -13,17 +22,13 @@ function MergeHidden(left, right) {
|
|
|
13
22
|
}
|
|
14
23
|
return left;
|
|
15
24
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Creates an object with hidden, enumerable, and optional property sets. This function
|
|
21
|
-
* ensures types are instantiated according to configuration rules for enumerable and
|
|
22
|
-
* non-enumerable properties.
|
|
23
|
-
*/
|
|
25
|
+
// ------------------------------------------------------------------
|
|
26
|
+
// Create
|
|
27
|
+
// ------------------------------------------------------------------
|
|
28
|
+
/** Creates an object with hidden, enumerable, and optional property sets. */
|
|
24
29
|
export function Create(hidden, enumerable, options = {}) {
|
|
25
30
|
Metrics.create += 1;
|
|
26
|
-
const
|
|
27
|
-
const withHidden = Settings.Get().enumerableKind ?
|
|
28
|
-
return
|
|
31
|
+
const withEnumerable = WithEnumerable(enumerable, options);
|
|
32
|
+
const withHidden = Settings.Get().enumerableKind ? WithEnumerable(withEnumerable, hidden) : WithHidden(withEnumerable, hidden);
|
|
33
|
+
return Finalize(withHidden);
|
|
29
34
|
}
|