@xyo-network/module-abstract 2.64.10 → 2.65.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 (114) hide show
  1. package/dist/cjs/AbstractIndirectModule.js +44 -18
  2. package/dist/cjs/AbstractIndirectModule.js.map +1 -1
  3. package/dist/cjs/AbstractModule.js +12 -4
  4. package/dist/cjs/AbstractModule.js.map +1 -1
  5. package/dist/cjs/Error.js +3 -3
  6. package/dist/cjs/Error.js.map +1 -1
  7. package/dist/cjs/QueryValidator/ModuleConfigQueryValidator.js +2 -2
  8. package/dist/cjs/QueryValidator/ModuleConfigQueryValidator.js.map +1 -1
  9. package/dist/cjs/QueryValidator/SupportedQueryValidator.js +2 -2
  10. package/dist/cjs/QueryValidator/SupportedQueryValidator.js.map +1 -1
  11. package/dist/cjs/Resolver/CompositeModuleResolver.js +15 -20
  12. package/dist/cjs/Resolver/CompositeModuleResolver.js.map +1 -1
  13. package/dist/cjs/Resolver/SimpleModuleResolver.js +19 -18
  14. package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -1
  15. package/dist/cjs/index.js +1 -3
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/docs.json +16382 -20093
  18. package/dist/esm/AbstractIndirectModule.js +39 -16
  19. package/dist/esm/AbstractIndirectModule.js.map +1 -1
  20. package/dist/esm/AbstractModule.js +12 -4
  21. package/dist/esm/AbstractModule.js.map +1 -1
  22. package/dist/esm/Error.js +1 -1
  23. package/dist/esm/Error.js.map +1 -1
  24. package/dist/esm/QueryValidator/ModuleConfigQueryValidator.js +1 -1
  25. package/dist/esm/QueryValidator/ModuleConfigQueryValidator.js.map +1 -1
  26. package/dist/esm/QueryValidator/SupportedQueryValidator.js +1 -1
  27. package/dist/esm/QueryValidator/SupportedQueryValidator.js.map +1 -1
  28. package/dist/esm/Resolver/CompositeModuleResolver.js +15 -18
  29. package/dist/esm/Resolver/CompositeModuleResolver.js.map +1 -1
  30. package/dist/esm/Resolver/SimpleModuleResolver.js +19 -18
  31. package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -1
  32. package/dist/esm/index.js +1 -3
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/types/AbstractIndirectModule.d.ts +11 -7
  35. package/dist/types/AbstractIndirectModule.d.ts.map +1 -1
  36. package/dist/types/AbstractModule.d.ts.map +1 -1
  37. package/dist/types/Error.d.ts +1 -1
  38. package/dist/types/Error.d.ts.map +1 -1
  39. package/dist/types/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -1
  40. package/dist/types/QueryValidator/QueryValidator.d.ts +1 -1
  41. package/dist/types/QueryValidator/QueryValidator.d.ts.map +1 -1
  42. package/dist/types/QueryValidator/SupportedQueryValidator.d.ts.map +1 -1
  43. package/dist/types/Resolver/CompositeModuleResolver.d.ts +2 -2
  44. package/dist/types/Resolver/CompositeModuleResolver.d.ts.map +1 -1
  45. package/dist/types/Resolver/SimpleModuleResolver.d.ts +2 -2
  46. package/dist/types/Resolver/SimpleModuleResolver.d.ts.map +1 -1
  47. package/dist/types/index.d.ts +1 -3
  48. package/dist/types/index.d.ts.map +1 -1
  49. package/package.json +22 -24
  50. package/src/AbstractIndirectModule.ts +46 -22
  51. package/src/AbstractModule.ts +12 -4
  52. package/src/Error.ts +1 -1
  53. package/src/QueryValidator/ModuleConfigQueryValidator.ts +1 -1
  54. package/src/QueryValidator/QueryValidator.ts +1 -1
  55. package/src/QueryValidator/SupportedQueryValidator.ts +2 -2
  56. package/src/Resolver/CompositeModuleResolver.ts +22 -19
  57. package/src/Resolver/SimpleModuleResolver.ts +21 -21
  58. package/src/index.ts +1 -3
  59. package/dist/cjs/ModuleFactory.js +0 -30
  60. package/dist/cjs/ModuleFactory.js.map +0 -1
  61. package/dist/cjs/Query/QueryBoundWitnessBuilder.js +0 -31
  62. package/dist/cjs/Query/QueryBoundWitnessBuilder.js.map +0 -1
  63. package/dist/cjs/Query/QueryBoundWitnessValidator.js +0 -58
  64. package/dist/cjs/Query/QueryBoundWitnessValidator.js.map +0 -1
  65. package/dist/cjs/Query/QueryBoundWitnessWrapper.js +0 -62
  66. package/dist/cjs/Query/QueryBoundWitnessWrapper.js.map +0 -1
  67. package/dist/cjs/Query/index.js +0 -7
  68. package/dist/cjs/Query/index.js.map +0 -1
  69. package/dist/cjs/lib/duplicateModules.js +0 -17
  70. package/dist/cjs/lib/duplicateModules.js.map +0 -1
  71. package/dist/cjs/lib/index.js +0 -6
  72. package/dist/cjs/lib/index.js.map +0 -1
  73. package/dist/cjs/lib/serializable.js +0 -38
  74. package/dist/cjs/lib/serializable.js.map +0 -1
  75. package/dist/esm/ModuleFactory.js +0 -28
  76. package/dist/esm/ModuleFactory.js.map +0 -1
  77. package/dist/esm/Query/QueryBoundWitnessBuilder.js +0 -26
  78. package/dist/esm/Query/QueryBoundWitnessBuilder.js.map +0 -1
  79. package/dist/esm/Query/QueryBoundWitnessValidator.js +0 -47
  80. package/dist/esm/Query/QueryBoundWitnessValidator.js.map +0 -1
  81. package/dist/esm/Query/QueryBoundWitnessWrapper.js +0 -46
  82. package/dist/esm/Query/QueryBoundWitnessWrapper.js.map +0 -1
  83. package/dist/esm/Query/index.js +0 -4
  84. package/dist/esm/Query/index.js.map +0 -1
  85. package/dist/esm/lib/duplicateModules.js +0 -13
  86. package/dist/esm/lib/duplicateModules.js.map +0 -1
  87. package/dist/esm/lib/index.js +0 -3
  88. package/dist/esm/lib/index.js.map +0 -1
  89. package/dist/esm/lib/serializable.js +0 -32
  90. package/dist/esm/lib/serializable.js.map +0 -1
  91. package/dist/types/ModuleFactory.d.ts +0 -17
  92. package/dist/types/ModuleFactory.d.ts.map +0 -1
  93. package/dist/types/Query/QueryBoundWitnessBuilder.d.ts +0 -12
  94. package/dist/types/Query/QueryBoundWitnessBuilder.d.ts.map +0 -1
  95. package/dist/types/Query/QueryBoundWitnessValidator.d.ts +0 -10
  96. package/dist/types/Query/QueryBoundWitnessValidator.d.ts.map +0 -1
  97. package/dist/types/Query/QueryBoundWitnessWrapper.d.ts +0 -18
  98. package/dist/types/Query/QueryBoundWitnessWrapper.d.ts.map +0 -1
  99. package/dist/types/Query/index.d.ts +0 -4
  100. package/dist/types/Query/index.d.ts.map +0 -1
  101. package/dist/types/lib/duplicateModules.d.ts +0 -12
  102. package/dist/types/lib/duplicateModules.d.ts.map +0 -1
  103. package/dist/types/lib/index.d.ts +0 -3
  104. package/dist/types/lib/index.d.ts.map +0 -1
  105. package/dist/types/lib/serializable.d.ts +0 -3
  106. package/dist/types/lib/serializable.d.ts.map +0 -1
  107. package/src/ModuleFactory.ts +0 -42
  108. package/src/Query/QueryBoundWitnessBuilder.ts +0 -33
  109. package/src/Query/QueryBoundWitnessValidator.ts +0 -50
  110. package/src/Query/QueryBoundWitnessWrapper.ts +0 -65
  111. package/src/Query/index.ts +0 -3
  112. package/src/lib/duplicateModules.ts +0 -14
  113. package/src/lib/index.ts +0 -2
  114. package/src/lib/serializable.ts +0 -41
@@ -1,50 +0,0 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import { BoundWitnessValidator } from '@xyo-network/boundwitness-validator'
3
- import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
4
- import { handleError } from '@xyo-network/error'
5
- import { Query, QueryBoundWitness, QueryBoundWitnessSchema } from '@xyo-network/module-model'
6
- import { PayloadSetPayload } from '@xyo-network/payload-model'
7
- import { PayloadWrapper } from '@xyo-network/payload-wrapper'
8
- export class QueryBoundWitnessValidator<T extends Query = Query> extends BoundWitnessValidator<QueryBoundWitness> {
9
- private _query: PayloadWrapper<T> | undefined
10
-
11
- protected override get expectedSchema(): string {
12
- return QueryBoundWitnessSchema
13
- }
14
-
15
- static isQueryBoundWitnessValidator(obj: unknown) {
16
- return (obj as QueryBoundWitnessValidator)?.constructor === QueryBoundWitnessValidator
17
- }
18
-
19
- override async validate() {
20
- return [
21
- ...(await super.validate()),
22
- // ...this.validateResultSet()
23
- ]
24
- }
25
-
26
- async validateResultSet() {
27
- const errors: Error[] = []
28
- try {
29
- const resultSetHash = assertEx(this.obj.resultSet, 'Missing ResultSet')
30
- const wrapper = BoundWitnessWrapper.parse(this.obj)
31
- const resultSet = PayloadWrapper.wrap<PayloadSetPayload>((await wrapper.payloadMap())[resultSetHash] as PayloadSetPayload)
32
- const required = resultSet?.payload().required
33
- if (required) {
34
- Object.entries(required).forEach(([key, value]) => {
35
- const found = wrapper.payloadSchemas.reduce((count, schema) => {
36
- return count + (schema === key ? 1 : 0)
37
- }, 0)
38
- if (found !== value) {
39
- errors.push(Error(`validateResultSet: Missing Schema [${key}:${found}:${value}]`))
40
- }
41
- })
42
- }
43
- } catch (ex) {
44
- handleError(ex, (error) => {
45
- errors.push(error)
46
- })
47
- }
48
- return errors
49
- }
50
- }
@@ -1,65 +0,0 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import { BoundWitnessWrapper } from '@xyo-network/boundwitness-wrapper'
3
- import { PayloadHasher } from '@xyo-network/core'
4
- import { Query, QueryBoundWitness } from '@xyo-network/module-model'
5
- import { Payload, PayloadSetPayload } from '@xyo-network/payload-model'
6
- import { PayloadWrapper } from '@xyo-network/payload-wrapper'
7
- import compact from 'lodash/compact'
8
-
9
- import { QueryBoundWitnessValidator } from './QueryBoundWitnessValidator'
10
-
11
- export class QueryBoundWitnessWrapper<T extends Query = Query> extends BoundWitnessWrapper<QueryBoundWitness> {
12
- private _payloadsWithoutQuery: PayloadWrapper<Payload>[] | undefined
13
- private _query: T | undefined
14
- private _resultSet: PayloadSetPayload | undefined
15
-
16
- private isQueryBoundWitnessWrapper = true
17
-
18
- static parseQuery<T extends Query = Query>(obj: unknown, payloads?: Payload[]): QueryBoundWitnessWrapper<T> {
19
- assertEx(!Array.isArray(obj), 'Array can not be converted to QueryBoundWitnessWrapper')
20
- switch (typeof obj) {
21
- case 'object': {
22
- const castWrapper = obj as QueryBoundWitnessWrapper<T>
23
- const wrapper = castWrapper?.isQueryBoundWitnessWrapper ? castWrapper : new QueryBoundWitnessWrapper<T>(obj as QueryBoundWitness, payloads)
24
- /*if (!wrapper.valid) {
25
- console.warn(`Parsed invalid QueryBoundWitness ${JSON.stringify(wrapper.errors.map((error) => error.message))}`)
26
- }*/
27
- return wrapper
28
- }
29
- }
30
- throw Error(`Unable to parse [${typeof obj}]`)
31
- }
32
-
33
- override getErrors() {
34
- return new QueryBoundWitnessValidator(this.boundwitness).validate()
35
- }
36
-
37
- async getQuery(): Promise<T> {
38
- const payloadMap = await this.allPayloadMap()
39
- this._query = this._query ?? (payloadMap[this.boundwitness.query] as T | undefined)
40
- return assertEx(this._query, `Missing Query [${this.boundwitness}]`)
41
- }
42
-
43
- async getResultSet() {
44
- const resultSetHash = this.boundwitness.resultSet
45
- const payloadMap = await this.payloadMap()
46
- return assertEx(
47
- (this._resultSet = this._resultSet ?? (resultSetHash ? (payloadMap[resultSetHash] as PayloadSetPayload | undefined) : undefined)),
48
- `Missing resultSet [${resultSetHash}]`,
49
- )
50
- }
51
-
52
- override async getWrappedPayloads(): Promise<PayloadWrapper<Payload>[]> {
53
- this._payloadsWithoutQuery =
54
- this._payloadsWithoutQuery ??
55
- compact(
56
- (
57
- await PayloadHasher.filterExclude(
58
- (await super.getWrappedPayloads()).map((wrapper) => wrapper.payload()),
59
- this.payload().query,
60
- )
61
- ).map((payload) => PayloadWrapper.wrap(payload)),
62
- )
63
- return this._payloadsWithoutQuery
64
- }
65
- }
@@ -1,3 +0,0 @@
1
- export * from './QueryBoundWitnessBuilder'
2
- export * from './QueryBoundWitnessValidator'
3
- export * from './QueryBoundWitnessWrapper'
@@ -1,14 +0,0 @@
1
- import { IndirectModule } from '@xyo-network/module-model'
2
-
3
- /**
4
- * Used to filter duplicates from an array of modules
5
- * @example: modulesArray.filter(duplicateModules)
6
- * @param value Current Module
7
- * @param index Current Module's index
8
- * @param array Module Array
9
- * @returns True if the Module's address is the first occurrence of
10
- * that address in the array, false otherwise
11
- */
12
- export const duplicateModules = (value: IndirectModule, index: number, array: IndirectModule[]): value is IndirectModule => {
13
- return array.findIndex((v) => v.address === value.address) === index
14
- }
package/src/lib/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './duplicateModules'
2
- export * from './serializable'
@@ -1,41 +0,0 @@
1
- // Inspired by https://stackoverflow.com/a/49079549/2803259
2
-
3
- import every from 'lodash/every'
4
- import isArray from 'lodash/isArray'
5
- import isBoolean from 'lodash/isBoolean'
6
- import isNull from 'lodash/isNull'
7
- import isNumber from 'lodash/isNumber'
8
- import isPlainObject from 'lodash/isPlainObject'
9
- import isString from 'lodash/isString'
10
- import isUndefined from 'lodash/isUndefined'
11
- import overSome from 'lodash/overSome'
12
-
13
- const JSONPrimitiveChecks = [isUndefined, isNull, isBoolean, isNumber, isString]
14
- const JSONComplexChecks = [isPlainObject, isArray]
15
-
16
- export const serializable = (field: unknown, depth?: number): boolean | null => {
17
- let depthExceeded = false
18
- const decrementDepth = () => (depth ? depth-- : undefined)
19
-
20
- const recursiveSerializable = (field: unknown) => {
21
- if (depth !== undefined && depth < 1) {
22
- depthExceeded = true
23
- return false
24
- }
25
-
26
- // decrement during every recursion
27
- decrementDepth()
28
-
29
- const nestedSerializable = (field: unknown): boolean => overSome(JSONComplexChecks)(field) && every(field as object, recursiveSerializable)
30
-
31
- return overSome([...JSONPrimitiveChecks, nestedSerializable])(field)
32
- }
33
-
34
- const valid = recursiveSerializable(field)
35
-
36
- return depthExceeded ? null : valid
37
- }
38
-
39
- export const serializableField = (field: unknown) => {
40
- return overSome([...JSONPrimitiveChecks, ...JSONComplexChecks])(field)
41
- }