@xyo-network/payload-builder 3.6.0-rc.9 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,26 +0,0 @@
1
- import type { AnyObject, EmptyObject } from '@xylabs/object';
2
- import type { Promisable } from '@xylabs/promise';
3
- import type { Payload, Schema, WithOnlyClientMeta, WithOptionalSchema, WithoutClientMeta, WithoutMeta, WithoutPrivateStorageMeta, WithoutSchema, WithoutStorageMeta } from '@xyo-network/payload-model';
4
- import type { PayloadBuilderOptions } from './Options.ts';
5
- export declare const omitSchema: <T extends WithOptionalSchema>(payload: T) => WithoutSchema<T>;
6
- export declare class PayloadBuilderBase<T extends Payload = Payload<AnyObject>, O extends PayloadBuilderOptions<T> = PayloadBuilderOptions<T>> {
7
- readonly options: O;
8
- protected _fields?: WithoutMeta<WithoutSchema<T>>;
9
- protected _meta?: WithOnlyClientMeta<T>;
10
- protected _schema: Schema;
11
- constructor(options: O);
12
- static dataHashableFields<T extends Payload>(schema: Schema, payload: WithoutSchema<T>): Promisable<WithoutMeta<T>>;
13
- static omitClientMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutClientMeta<T>;
14
- static omitClientMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutClientMeta<T>[];
15
- static omitMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutMeta<T>;
16
- static omitMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutMeta<T>[];
17
- static omitPrivateStorageMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutPrivateStorageMeta<T>;
18
- static omitPrivateStorageMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutPrivateStorageMeta<T>[];
19
- static omitStorageMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutStorageMeta<T>;
20
- static omitStorageMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutStorageMeta<T>[];
21
- dataHashableFields(): Promise<import("@xylabs/object").DeepOmitStartsWith<import("@xylabs/object").DeepOmitStartsWith<T, "_">, "$">>;
22
- fields(fields: WithoutMeta<WithoutSchema<T>>): this;
23
- meta(meta: WithOnlyClientMeta<T>): this;
24
- schema(value: Schema): void;
25
- }
26
- //# sourceMappingURL=BuilderBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuilderBase.d.ts","sourceRoot":"","sources":["../../src/BuilderBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzD,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,kBAAkB,WAAW,CAAC,KAAG,aAAa,CAAC,CAAC,CAIpF,CAAA;AAED,qBAAa,kBAAkB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EACpE,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAKjD,QAAQ,CAAC,OAAO,EAAE,CAAC;IAJ/B,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEJ,OAAO,EAAE,CAAC;IAQ/B,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,OAAO,EACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAExB,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS7B,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;IAOtG,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE;IAO1F,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,EAAE;IAOtH,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;IACnG,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE;IAOlG,kBAAkB;IAQxB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAM5C,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAMhC,MAAM,CAAC,KAAK,EAAE,MAAM;CAGrB"}
@@ -1,26 +0,0 @@
1
- import type { AnyObject, EmptyObject } from '@xylabs/object';
2
- import type { Promisable } from '@xylabs/promise';
3
- import type { Payload, Schema, WithOnlyClientMeta, WithOptionalSchema, WithoutClientMeta, WithoutMeta, WithoutPrivateStorageMeta, WithoutSchema, WithoutStorageMeta } from '@xyo-network/payload-model';
4
- import type { PayloadBuilderOptions } from './Options.ts';
5
- export declare const omitSchema: <T extends WithOptionalSchema>(payload: T) => WithoutSchema<T>;
6
- export declare class PayloadBuilderBase<T extends Payload = Payload<AnyObject>, O extends PayloadBuilderOptions<T> = PayloadBuilderOptions<T>> {
7
- readonly options: O;
8
- protected _fields?: WithoutMeta<WithoutSchema<T>>;
9
- protected _meta?: WithOnlyClientMeta<T>;
10
- protected _schema: Schema;
11
- constructor(options: O);
12
- static dataHashableFields<T extends Payload>(schema: Schema, payload: WithoutSchema<T>): Promisable<WithoutMeta<T>>;
13
- static omitClientMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutClientMeta<T>;
14
- static omitClientMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutClientMeta<T>[];
15
- static omitMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutMeta<T>;
16
- static omitMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutMeta<T>[];
17
- static omitPrivateStorageMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutPrivateStorageMeta<T>;
18
- static omitPrivateStorageMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutPrivateStorageMeta<T>[];
19
- static omitStorageMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutStorageMeta<T>;
20
- static omitStorageMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutStorageMeta<T>[];
21
- dataHashableFields(): Promise<import("@xylabs/object").DeepOmitStartsWith<import("@xylabs/object").DeepOmitStartsWith<T, "_">, "$">>;
22
- fields(fields: WithoutMeta<WithoutSchema<T>>): this;
23
- meta(meta: WithOnlyClientMeta<T>): this;
24
- schema(value: Schema): void;
25
- }
26
- //# sourceMappingURL=BuilderBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuilderBase.d.ts","sourceRoot":"","sources":["../../src/BuilderBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzD,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,kBAAkB,WAAW,CAAC,KAAG,aAAa,CAAC,CAAC,CAIpF,CAAA;AAED,qBAAa,kBAAkB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EACpE,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAKjD,QAAQ,CAAC,OAAO,EAAE,CAAC;IAJ/B,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEJ,OAAO,EAAE,CAAC;IAQ/B,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,OAAO,EACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAExB,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS7B,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;IAOtG,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE;IAO1F,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,EAAE;IAOtH,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;IACnG,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE;IAOlG,kBAAkB;IAQxB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAM5C,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAMhC,MAAM,CAAC,KAAK,EAAE,MAAM;CAGrB"}
@@ -1,26 +0,0 @@
1
- import type { AnyObject, EmptyObject } from '@xylabs/object';
2
- import type { Promisable } from '@xylabs/promise';
3
- import type { Payload, Schema, WithOnlyClientMeta, WithOptionalSchema, WithoutClientMeta, WithoutMeta, WithoutPrivateStorageMeta, WithoutSchema, WithoutStorageMeta } from '@xyo-network/payload-model';
4
- import type { PayloadBuilderOptions } from './Options.ts';
5
- export declare const omitSchema: <T extends WithOptionalSchema>(payload: T) => WithoutSchema<T>;
6
- export declare class PayloadBuilderBase<T extends Payload = Payload<AnyObject>, O extends PayloadBuilderOptions<T> = PayloadBuilderOptions<T>> {
7
- readonly options: O;
8
- protected _fields?: WithoutMeta<WithoutSchema<T>>;
9
- protected _meta?: WithOnlyClientMeta<T>;
10
- protected _schema: Schema;
11
- constructor(options: O);
12
- static dataHashableFields<T extends Payload>(schema: Schema, payload: WithoutSchema<T>): Promisable<WithoutMeta<T>>;
13
- static omitClientMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutClientMeta<T>;
14
- static omitClientMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutClientMeta<T>[];
15
- static omitMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutMeta<T>;
16
- static omitMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutMeta<T>[];
17
- static omitPrivateStorageMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutPrivateStorageMeta<T>;
18
- static omitPrivateStorageMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutPrivateStorageMeta<T>[];
19
- static omitStorageMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutStorageMeta<T>;
20
- static omitStorageMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutStorageMeta<T>[];
21
- dataHashableFields(): Promise<import("@xylabs/object").DeepOmitStartsWith<import("@xylabs/object").DeepOmitStartsWith<T, "_">, "$">>;
22
- fields(fields: WithoutMeta<WithoutSchema<T>>): this;
23
- meta(meta: WithOnlyClientMeta<T>): this;
24
- schema(value: Schema): void;
25
- }
26
- //# sourceMappingURL=BuilderBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuilderBase.d.ts","sourceRoot":"","sources":["../../src/BuilderBase.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,OAAO,EAAE,MAAM,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEzD,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,kBAAkB,WAAW,CAAC,KAAG,aAAa,CAAC,CAAC,CAIpF,CAAA;AAED,qBAAa,kBAAkB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EACpE,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAKjD,QAAQ,CAAC,OAAO,EAAE,CAAC;IAJ/B,SAAS,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,SAAS,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEJ,OAAO,EAAE,CAAC;IAQ/B,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,OAAO,EACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAExB,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAS7B,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE;IAOtG,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IACrF,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE;IAO1F,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC;IACjH,MAAM,CAAC,sBAAsB,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,EAAE;IAOtH,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;IACnG,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAAE;IAOlG,kBAAkB;IAQxB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAM5C,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAMhC,MAAM,CAAC,KAAK,EAAE,MAAM;CAGrB"}
@@ -1,109 +0,0 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import type { AnyObject, EmptyObject } from '@xylabs/object'
3
- import {
4
- isJsonObject, omitByPrefix, pickByPrefix, toJson,
5
- } from '@xylabs/object'
6
- import type { Promisable } from '@xylabs/promise'
7
- import { removeEmptyFields } from '@xyo-network/hash'
8
- import type {
9
- Payload, Schema,
10
- WithOnlyClientMeta,
11
- WithOptionalSchema,
12
- WithoutClientMeta,
13
- WithoutMeta,
14
- WithoutPrivateStorageMeta,
15
- WithoutSchema,
16
- WithoutStorageMeta,
17
- } from '@xyo-network/payload-model'
18
-
19
- import type { PayloadBuilderOptions } from './Options.ts'
20
-
21
- export const omitSchema = <T extends WithOptionalSchema>(payload: T): WithoutSchema<T> => {
22
- const result = structuredClone(payload)
23
- delete result.schema
24
- return result
25
- }
26
-
27
- export class PayloadBuilderBase<T extends Payload = Payload<AnyObject>,
28
- O extends PayloadBuilderOptions<T> = PayloadBuilderOptions<T>> {
29
- protected _fields?: WithoutMeta<WithoutSchema<T>>
30
- protected _meta?: WithOnlyClientMeta<T>
31
- protected _schema: Schema
32
-
33
- constructor(readonly options: O) {
34
- const { schema, fields } = options
35
- this._schema = schema
36
- if (fields) {
37
- this.fields(fields)
38
- }
39
- }
40
-
41
- static dataHashableFields<T extends Payload>(
42
- schema: Schema,
43
- payload: WithoutSchema<T>,
44
-
45
- ): Promisable<WithoutMeta<T>> {
46
- const cleanFields = removeEmptyFields({ ...payload, schema })
47
- assertEx(
48
- cleanFields === undefined || isJsonObject(cleanFields),
49
- () => `Fields must be JsonObject: ${JSON.stringify(toJson(cleanFields), null, 2)}`,
50
- )
51
- return this.omitMeta(cleanFields) as WithoutMeta<T>
52
- }
53
-
54
- static omitClientMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutClientMeta<T>
55
- static omitClientMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutClientMeta<T>[]
56
- static omitClientMeta<T extends EmptyObject>(payloads: T | T[], maxDepth = 100): WithoutClientMeta<T> | WithoutClientMeta<T>[] {
57
- return Array.isArray(payloads)
58
- ? payloads.map(payload => this.omitClientMeta(payload, maxDepth))
59
- : omitByPrefix(payloads, '$', maxDepth)
60
- }
61
-
62
- static omitMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutMeta<T>
63
- static omitMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutMeta<T>[]
64
- static omitMeta<T extends EmptyObject>(payloads: T | T[], maxDepth = 100): WithoutMeta<T> | WithoutMeta<T>[] {
65
- return Array.isArray(payloads)
66
- ? payloads.map(payload => this.omitMeta(payload, maxDepth))
67
- : this.omitStorageMeta(this.omitClientMeta(payloads, maxDepth), maxDepth) as unknown as WithoutMeta<T>
68
- }
69
-
70
- static omitPrivateStorageMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutPrivateStorageMeta<T>
71
- static omitPrivateStorageMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutPrivateStorageMeta<T>[]
72
- static omitPrivateStorageMeta<T extends EmptyObject>(payloads: T | T[], maxDepth = 100): WithoutPrivateStorageMeta<T> | WithoutPrivateStorageMeta<T>[] {
73
- return Array.isArray(payloads)
74
- ? payloads.map(payload => this.omitPrivateStorageMeta(payload, maxDepth))
75
- : omitByPrefix(payloads, '__', maxDepth)
76
- }
77
-
78
- static omitStorageMeta<T extends EmptyObject>(payload: T, maxDepth?: number): WithoutStorageMeta<T>
79
- static omitStorageMeta<T extends EmptyObject>(payloads: T[], maxDepth?: number): WithoutStorageMeta<T>[]
80
- static omitStorageMeta<T extends EmptyObject>(payloads: T | T[], maxDepth = 100): WithoutStorageMeta<T> | WithoutStorageMeta<T>[] {
81
- return Array.isArray(payloads)
82
- ? payloads.map(payload => this.omitStorageMeta(payload, maxDepth))
83
- : omitByPrefix(payloads, '_', maxDepth)
84
- }
85
-
86
- async dataHashableFields() {
87
- return await PayloadBuilderBase.dataHashableFields(
88
- assertEx(this._schema, () => 'Payload: Missing Schema'),
89
- // TODO: Add verification that required fields are present
90
- this._fields as WithoutSchema<T>,
91
- )
92
- }
93
-
94
- fields(fields: WithoutMeta<WithoutSchema<T>>) {
95
- // we need to do the cast here since ts seems to not like nested, yet same, generics
96
- this._fields = omitSchema(PayloadBuilderBase.omitMeta(removeEmptyFields(structuredClone(fields)))) as unknown as WithoutMeta<WithoutSchema<T>>
97
- return this
98
- }
99
-
100
- meta(meta: WithOnlyClientMeta<T>) {
101
- // we need to do the cast here since ts seems to not like nested, yet same, generics
102
- this._meta = pickByPrefix(meta, '$') as WithOnlyClientMeta<T>
103
- return this
104
- }
105
-
106
- schema(value: Schema) {
107
- this._schema = value
108
- }
109
- }