@xyo-network/id-plugin 4.1.1 → 5.0.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 +1,3 @@
1
- import * as _xyo_network_payloadset_plugin from '@xyo-network/payloadset-plugin';
2
- import { Promisable } from '@xylabs/promise';
3
- import { AbstractWitness } from '@xyo-network/abstract-witness';
4
- import { Id } from '@xyo-network/id-payload-plugin';
5
- import { AnyConfigSchema } from '@xyo-network/module-model';
6
- import { Schema, Payload } from '@xyo-network/payload-model';
7
- import { WitnessParams, WitnessConfig } from '@xyo-network/witness-model';
8
-
9
- type IdWitnessConfigSchema = 'network.xyo.id.witness.config';
10
- declare const IdWitnessConfigSchema: IdWitnessConfigSchema;
11
- type IdWitnessConfig = WitnessConfig<{
12
- salt?: string;
13
- schema: IdWitnessConfigSchema;
14
- }>;
15
- type IdWitnessParams = WitnessParams<AnyConfigSchema<IdWitnessConfig>>;
16
- declare class IdWitness<TParams extends IdWitnessParams = IdWitnessParams> extends AbstractWitness<TParams> {
17
- static readonly configSchemas: Schema[];
18
- static readonly defaultConfigSchema: Schema;
19
- get salt(): string;
20
- protected observeHandler(payloads?: Payload[]): Promisable<Id[]>;
21
- }
22
-
23
- declare const IdPlugin: () => _xyo_network_payloadset_plugin.PayloadSetWitnessPlugin<IdWitness<IdWitnessParams>>;
24
-
25
- export { IdPlugin, IdWitness, IdWitnessConfigSchema, IdPlugin as default };
26
- export type { IdWitnessConfig, IdWitnessParams };
1
+ export { IdPlugin as default, IdPlugin } from './Plugin.ts';
2
+ export * from './Witness.ts';
3
+ //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/id-plugin",
3
- "version": "4.1.1",
3
+ "version": "5.0.0",
4
4
  "description": "Typescript/Javascript Plugins for XYO Platform",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -28,21 +28,24 @@
28
28
  },
29
29
  "module": "dist/neutral/index.mjs",
30
30
  "types": "dist/neutral/index.d.ts",
31
+ "files": [
32
+ "dist",
33
+ "src"
34
+ ],
31
35
  "dependencies": {
32
- "@xylabs/promise": "^4.13.23",
33
- "@xyo-network/abstract-witness": "^4.1.7",
34
- "@xyo-network/id-payload-plugin": "^4.1.7",
35
- "@xyo-network/module-model": "^4.1.7",
36
- "@xyo-network/payload-model": "^4.1.7",
37
- "@xyo-network/payloadset-plugin": "^4.1.7",
38
- "@xyo-network/witness-model": "^4.1.7"
36
+ "@xylabs/promise": "^5.0.0",
37
+ "@xyo-network/abstract-witness": "^5.0.0",
38
+ "@xyo-network/id-payload-plugin": "^5.0.0",
39
+ "@xyo-network/module-model": "^5.0.0",
40
+ "@xyo-network/payload-model": "^5.0.0",
41
+ "@xyo-network/payloadset-plugin": "^5.0.0",
42
+ "@xyo-network/witness-model": "^5.0.0"
39
43
  },
40
44
  "devDependencies": {
41
- "@xylabs/ts-scripts-yarn3": "^7.0.0-rc.24",
42
- "@xylabs/tsconfig": "^7.0.0-rc.24",
43
- "@xylabs/vitest-extended": "^4.13.23",
44
- "@xyo-network/payload-wrapper": "^4.1.7",
45
- "knip": "^5.62.0",
45
+ "@xylabs/ts-scripts-yarn3": "^7.0.2",
46
+ "@xylabs/tsconfig": "^7.0.2",
47
+ "@xylabs/vitest-extended": "^5.0.0",
48
+ "@xyo-network/payload-wrapper": "^5.0.0",
46
49
  "typescript": "^5.8.3",
47
50
  "vitest": "^3.2.4"
48
51
  },
@@ -0,0 +1,18 @@
1
+ import '@xylabs/vitest-extended'
2
+
3
+ import { PayloadSetPluginResolver } from '@xyo-network/payloadset-plugin'
4
+ import {
5
+ describe, expect,
6
+ test,
7
+ } from 'vitest'
8
+
9
+ import { IdPlugin } from '../Plugin.ts'
10
+
11
+ describe('IdPlugin', () => {
12
+ test('Add to Resolver', async () => {
13
+ const plugin = IdPlugin()
14
+ const resolver = await new PayloadSetPluginResolver().register(plugin)
15
+ expect(await resolver.resolve(plugin.set)).toBeObject()
16
+ expect(await resolver.witness(plugin.set)).toBeObject()
17
+ })
18
+ })
@@ -0,0 +1,33 @@
1
+ import '@xylabs/vitest-extended'
2
+
3
+ import { IdSchema } from '@xyo-network/id-payload-plugin'
4
+ import type { Payload } from '@xyo-network/payload-model'
5
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper'
6
+ import {
7
+ describe, expect,
8
+ test,
9
+ } from 'vitest'
10
+
11
+ import { IdWitness, IdWitnessConfigSchema } from '../Witness.ts'
12
+
13
+ describe('IdWitness [Browser]', () => {
14
+ test('observe', async () => {
15
+ const witness = await IdWitness.create({
16
+ account: 'random',
17
+ config: { salt: 'test', schema: IdWitnessConfigSchema },
18
+ })
19
+ const [observation] = await witness.observe([{ salt: 'test', schema: IdSchema } as Payload])
20
+ expect(observation.schema).toBe(IdSchema)
21
+ expect(await PayloadWrapper.wrap(observation).getValid()).toBe(true)
22
+ })
23
+
24
+ test('observe [no salt]', async () => {
25
+ const witness = await IdWitness.create({
26
+ account: 'random',
27
+ config: { schema: IdWitnessConfigSchema },
28
+ })
29
+ const [observation] = await witness.observe([{ salt: 'test', schema: IdSchema } as Payload])
30
+ expect(observation.schema).toBe(IdSchema)
31
+ expect(await PayloadWrapper.wrap(observation).getValid()).toBe(true)
32
+ })
33
+ })
@@ -0,0 +1,86 @@
1
+ import '@xylabs/vitest-extended'
2
+
3
+ import type { Id } from '@xyo-network/id-payload-plugin'
4
+ import { IdSchema } from '@xyo-network/id-payload-plugin'
5
+ import type { Payload } from '@xyo-network/payload-model'
6
+ import { PayloadWrapper } from '@xyo-network/payload-wrapper'
7
+ import {
8
+ describe, expect,
9
+ it,
10
+ } from 'vitest'
11
+
12
+ import { IdWitness, IdWitnessConfigSchema } from '../Witness.ts'
13
+
14
+ describe('IdWitness', () => {
15
+ describe('observe', () => {
16
+ const payloadSalt = 'payload salt'
17
+ describe('with config', () => {
18
+ const configSalt = 'config salt'
19
+ const config = {
20
+ salt: configSalt,
21
+ schema: IdWitnessConfigSchema,
22
+ targetSchema: IdSchema,
23
+ }
24
+ describe('with payloads supplied to observe', () => {
25
+ it('without salt uses config salt', async () => {
26
+ const witness = await IdWitness.create({ account: 'random', config })
27
+ const observations = (await witness.observe()) as Id[]
28
+ await validateObservationShape(observations)
29
+ const [observation] = observations
30
+ expect(observation.salt).toBe(witness.config.salt)
31
+ })
32
+ it('with salt uses payload salt', async () => {
33
+ const witness = await IdWitness.create({ account: 'random', config })
34
+ const observations = (await witness.observe([{ salt: payloadSalt, schema: IdSchema }] as Id[])) as Id[]
35
+ await validateObservationShape(observations)
36
+ const [observation] = observations
37
+ expect(observation.salt).toBe(payloadSalt)
38
+ })
39
+ })
40
+ describe('with no payloads supplied to observe', () => {
41
+ it('uses config salt', async () => {
42
+ const witness = await IdWitness.create({ account: 'random', config })
43
+ const observations = (await witness.observe()) as Id[]
44
+ await validateObservationShape(observations)
45
+ const [observation] = observations
46
+ expect(observation.salt).toBe(witness.config.salt)
47
+ })
48
+ })
49
+ })
50
+ describe('with no config', () => {
51
+ describe('with payloads supplied to observe', () => {
52
+ it('without salt uses random numeric string', async () => {
53
+ const witness = await IdWitness.create({ account: 'random' })
54
+ const observations = (await witness.observe()) as Id[]
55
+ await validateObservationShape(observations)
56
+ const [observation] = observations
57
+ expect(Number.parseInt(observation.salt)).toBeInteger()
58
+ })
59
+ it('with salt uses payload salt', async () => {
60
+ const witness = await IdWitness.create({ account: 'random' })
61
+ const observations = (await witness.observe([{ salt: payloadSalt, schema: IdSchema } as Payload])) as Id[]
62
+ await validateObservationShape(observations)
63
+ const [observation] = observations
64
+ expect(observation.salt).toBe(payloadSalt)
65
+ })
66
+ })
67
+ describe('with no payloads supplied to observe', () => {
68
+ it('uses random numeric string', async () => {
69
+ const witness = await IdWitness.create({ account: 'random' })
70
+ const observations = (await witness.observe()) as Id[]
71
+ await validateObservationShape(observations)
72
+ const [observation] = observations
73
+ expect(Number.parseInt(observation.salt)).toBeInteger()
74
+ })
75
+ })
76
+ })
77
+ })
78
+ })
79
+
80
+ const validateObservationShape = async (observations: Id[]) => {
81
+ expect(observations).toBeArrayOfSize(1)
82
+ const [observation] = observations
83
+ expect(observation.salt).toBeString()
84
+ expect(observation.schema).toBe(IdSchema)
85
+ expect(await PayloadWrapper.wrap(observation).getValid()).toBe(true)
86
+ }
package/typedoc.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "$schema": "https://typedoc.org/schema.json",
3
- "entryPoints": ["./src/index.ts"],
4
- "tsconfig": "./tsconfig.typedoc.json"
5
- }
package/xy.config.ts DELETED
@@ -1,10 +0,0 @@
1
- import type { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
- const config: XyTsupConfig = {
3
- compile: {
4
- browser: {},
5
- node: {},
6
- neutral: { src: true },
7
- },
8
- }
9
-
10
- export default config