@xyo-network/witness-environment 2.74.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/LICENSE +165 -0
- package/README.md +13 -0
- package/dist/Config.d.mts +9 -0
- package/dist/Config.d.mts.map +1 -0
- package/dist/Config.d.ts +9 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Params.d.mts +5 -0
- package/dist/Params.d.mts.map +1 -0
- package/dist/Params.d.ts +5 -0
- package/dist/Params.d.ts.map +1 -0
- package/dist/Payload.d.mts +14 -0
- package/dist/Payload.d.mts.map +1 -0
- package/dist/Payload.d.ts +14 -0
- package/dist/Payload.d.ts.map +1 -0
- package/dist/Schema.d.mts +3 -0
- package/dist/Schema.d.mts.map +1 -0
- package/dist/Schema.d.ts +3 -0
- package/dist/Schema.d.ts.map +1 -0
- package/dist/Witness.d.mts +8 -0
- package/dist/Witness.d.mts.map +1 -0
- package/dist/Witness.d.ts +8 -0
- package/dist/Witness.d.ts.map +1 -0
- package/dist/docs.json +16617 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +54 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +66 -0
- package/src/Config.ts +15 -0
- package/src/Params.ts +7 -0
- package/src/Payload.ts +10 -0
- package/src/Schema.ts +2 -0
- package/src/Witness.ts +24 -0
- package/src/index.ts +4 -0
- package/typedoc.json +5 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
|
|
21
|
+
// src/index.ts
|
|
22
|
+
var src_exports = {};
|
|
23
|
+
__export(src_exports, {
|
|
24
|
+
EnvironmentSubsetSchema: () => EnvironmentSubsetSchema,
|
|
25
|
+
EnvironmentWitness: () => EnvironmentWitness,
|
|
26
|
+
EnvironmentWitnessConfigSchema: () => EnvironmentWitnessConfigSchema,
|
|
27
|
+
isEnvironmentSubsetPayload: () => isEnvironmentSubsetPayload
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(src_exports);
|
|
30
|
+
|
|
31
|
+
// src/Config.ts
|
|
32
|
+
var EnvironmentWitnessConfigSchema = "network.xyo.witness.environment.config";
|
|
33
|
+
|
|
34
|
+
// src/Payload.ts
|
|
35
|
+
var import_payload_model = require("@xyo-network/payload-model");
|
|
36
|
+
|
|
37
|
+
// src/Schema.ts
|
|
38
|
+
var EnvironmentSchema = "network.xyo.environment";
|
|
39
|
+
|
|
40
|
+
// src/Payload.ts
|
|
41
|
+
var EnvironmentSubsetSchema = `${EnvironmentSchema}.subset`;
|
|
42
|
+
var isEnvironmentSubsetPayload = (0, import_payload_model.isPayloadOfSchemaType)(EnvironmentSubsetSchema);
|
|
43
|
+
|
|
44
|
+
// src/Witness.ts
|
|
45
|
+
var import_abstract_witness = require("@xyo-network/abstract-witness");
|
|
46
|
+
var import_values_payload_plugin = require("@xyo-network/values-payload-plugin");
|
|
47
|
+
var import_witness_model = require("@xyo-network/witness-model");
|
|
48
|
+
var schema = import_values_payload_plugin.ValuesSchema;
|
|
49
|
+
var EnvironmentWitness = class extends import_abstract_witness.AbstractWitness {
|
|
50
|
+
static {
|
|
51
|
+
__name(this, "EnvironmentWitness");
|
|
52
|
+
}
|
|
53
|
+
static configSchemas = [
|
|
54
|
+
EnvironmentWitnessConfigSchema,
|
|
55
|
+
import_witness_model.WitnessConfigSchema
|
|
56
|
+
];
|
|
57
|
+
observeHandler(payloads) {
|
|
58
|
+
const subsets = payloads?.filter(isEnvironmentSubsetPayload) ?? [
|
|
59
|
+
void 0
|
|
60
|
+
];
|
|
61
|
+
return subsets.map(getEnv);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var getEnv = /* @__PURE__ */ __name((payload) => {
|
|
65
|
+
const subset = payload?.values;
|
|
66
|
+
const env = subset ? subset.reduce((acc, key) => ({
|
|
67
|
+
...acc,
|
|
68
|
+
[key]: process.env[key]
|
|
69
|
+
}), {}) : process.env;
|
|
70
|
+
return {
|
|
71
|
+
schema,
|
|
72
|
+
values: env
|
|
73
|
+
};
|
|
74
|
+
}, "getEnv");
|
|
75
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
76
|
+
0 && (module.exports = {
|
|
77
|
+
EnvironmentSubsetSchema,
|
|
78
|
+
EnvironmentWitness,
|
|
79
|
+
EnvironmentWitnessConfigSchema,
|
|
80
|
+
isEnvironmentSubsetPayload
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/Config.ts","../src/Payload.ts","../src/Schema.ts","../src/Witness.ts"],"sourcesContent":["export * from './Config'\nexport * from './Params'\nexport * from './Payload'\nexport * from './Witness'\n","import { WithAdditional } from '@xyo-network/core'\nimport { Payload } from '@xyo-network/payload-model'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nexport const EnvironmentWitnessConfigSchema = 'network.xyo.witness.environment.config'\nexport type EnvironmentWitnessConfigSchema = typeof EnvironmentWitnessConfigSchema\n\nexport type EnvironmentWitnessConfig<TConfig extends Payload | undefined = undefined> = WitnessConfig<\n WithAdditional<\n {\n schema: TConfig extends Payload ? TConfig['schema'] : EnvironmentWitnessConfigSchema\n },\n TConfig\n >\n>\n","import { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\nimport { EnvironmentSchema } from './Schema'\n\nexport const EnvironmentSubsetSchema = `${EnvironmentSchema}.subset`\nexport type EnvironmentSubsetSchema = typeof EnvironmentSubsetSchema\n\nexport type EnvironmentSubset = Payload<{ values: string[] }, EnvironmentSubsetSchema>\n\nexport const isEnvironmentSubsetPayload = isPayloadOfSchemaType<EnvironmentSubset>(EnvironmentSubsetSchema)\n","export const EnvironmentSchema = 'network.xyo.environment'\nexport type EnvironmentSchema = typeof EnvironmentSchema\n","import { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Values, ValuesSchema } from '@xyo-network/values-payload-plugin'\nimport { WitnessConfigSchema } from '@xyo-network/witness-model'\n\nimport { EnvironmentWitnessConfigSchema } from './Config'\nimport { EnvironmentWitnessParams } from './Params'\nimport { EnvironmentSubset, isEnvironmentSubsetPayload } from './Payload'\n\nconst schema = ValuesSchema\n\nexport class EnvironmentWitness<P extends EnvironmentWitnessParams = EnvironmentWitnessParams> extends AbstractWitness<P> {\n static override configSchemas = [EnvironmentWitnessConfigSchema, WitnessConfigSchema]\n protected override observeHandler(payloads?: Payload[]): Payload[] {\n const subsets = payloads?.filter(isEnvironmentSubsetPayload) ?? [undefined]\n return subsets.map(getEnv)\n }\n}\n\nconst getEnv = (payload?: EnvironmentSubset): Values => {\n const subset = payload?.values\n const env = subset ? subset.reduce((acc, key) => ({ ...acc, [key]: process.env[key] }), {}) : process.env\n return { schema, values: env }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;ACIO,IAAMA,iCAAiC;;;ACJ9C,2BAA+C;;;ACAxC,IAAMC,oBAAoB;;;ADI1B,IAAMC,0BAA0B,GAAGC,iBAAAA;AAKnC,IAAMC,iCAA6BC,4CAAyCH,uBAAAA;;;AETnF,8BAAgC;AAEhC,mCAAqC;AACrC,2BAAoC;AAMpC,IAAMI,SAASC;AAER,IAAMC,qBAAN,cAAgGC,wCAAAA;EAXvG,OAWuGA;;;EACrG,OAAgBC,gBAAgB;IAACC;IAAgCC;;EAC9CC,eAAeC,UAAiC;AACjE,UAAMC,UAAUD,UAAUE,OAAOC,0BAAAA,KAA+B;MAACC;;AACjE,WAAOH,QAAQI,IAAIC,MAAAA;EACrB;AACF;AAEA,IAAMA,SAAS,wBAACC,YAAAA;AACd,QAAMC,SAASD,SAASE;AACxB,QAAMC,MAAMF,SAASA,OAAOG,OAAO,CAACC,KAAKC,SAAS;IAAE,GAAGD;IAAK,CAACC,GAAAA,GAAMC,QAAQJ,IAAIG,GAAAA;EAAK,IAAI,CAAC,CAAA,IAAKC,QAAQJ;AACtG,SAAO;IAAElB;IAAQiB,QAAQC;EAAI;AAC/B,GAJe;","names":["EnvironmentWitnessConfigSchema","EnvironmentSchema","EnvironmentSubsetSchema","EnvironmentSchema","isEnvironmentSubsetPayload","isPayloadOfSchemaType","schema","ValuesSchema","EnvironmentWitness","AbstractWitness","configSchemas","EnvironmentWitnessConfigSchema","WitnessConfigSchema","observeHandler","payloads","subsets","filter","isEnvironmentSubsetPayload","undefined","map","getEnv","payload","subset","values","env","reduce","acc","key","process"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
|
|
4
|
+
// src/Config.ts
|
|
5
|
+
var EnvironmentWitnessConfigSchema = "network.xyo.witness.environment.config";
|
|
6
|
+
|
|
7
|
+
// src/Payload.ts
|
|
8
|
+
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
9
|
+
|
|
10
|
+
// src/Schema.ts
|
|
11
|
+
var EnvironmentSchema = "network.xyo.environment";
|
|
12
|
+
|
|
13
|
+
// src/Payload.ts
|
|
14
|
+
var EnvironmentSubsetSchema = `${EnvironmentSchema}.subset`;
|
|
15
|
+
var isEnvironmentSubsetPayload = isPayloadOfSchemaType(EnvironmentSubsetSchema);
|
|
16
|
+
|
|
17
|
+
// src/Witness.ts
|
|
18
|
+
import { AbstractWitness } from "@xyo-network/abstract-witness";
|
|
19
|
+
import { ValuesSchema } from "@xyo-network/values-payload-plugin";
|
|
20
|
+
import { WitnessConfigSchema } from "@xyo-network/witness-model";
|
|
21
|
+
var schema = ValuesSchema;
|
|
22
|
+
var EnvironmentWitness = class extends AbstractWitness {
|
|
23
|
+
static {
|
|
24
|
+
__name(this, "EnvironmentWitness");
|
|
25
|
+
}
|
|
26
|
+
static configSchemas = [
|
|
27
|
+
EnvironmentWitnessConfigSchema,
|
|
28
|
+
WitnessConfigSchema
|
|
29
|
+
];
|
|
30
|
+
observeHandler(payloads) {
|
|
31
|
+
const subsets = payloads?.filter(isEnvironmentSubsetPayload) ?? [
|
|
32
|
+
void 0
|
|
33
|
+
];
|
|
34
|
+
return subsets.map(getEnv);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var getEnv = /* @__PURE__ */ __name((payload) => {
|
|
38
|
+
const subset = payload?.values;
|
|
39
|
+
const env = subset ? subset.reduce((acc, key) => ({
|
|
40
|
+
...acc,
|
|
41
|
+
[key]: process.env[key]
|
|
42
|
+
}), {}) : process.env;
|
|
43
|
+
return {
|
|
44
|
+
schema,
|
|
45
|
+
values: env
|
|
46
|
+
};
|
|
47
|
+
}, "getEnv");
|
|
48
|
+
export {
|
|
49
|
+
EnvironmentSubsetSchema,
|
|
50
|
+
EnvironmentWitness,
|
|
51
|
+
EnvironmentWitnessConfigSchema,
|
|
52
|
+
isEnvironmentSubsetPayload
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Config.ts","../src/Payload.ts","../src/Schema.ts","../src/Witness.ts"],"sourcesContent":["import { WithAdditional } from '@xyo-network/core'\nimport { Payload } from '@xyo-network/payload-model'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nexport const EnvironmentWitnessConfigSchema = 'network.xyo.witness.environment.config'\nexport type EnvironmentWitnessConfigSchema = typeof EnvironmentWitnessConfigSchema\n\nexport type EnvironmentWitnessConfig<TConfig extends Payload | undefined = undefined> = WitnessConfig<\n WithAdditional<\n {\n schema: TConfig extends Payload ? TConfig['schema'] : EnvironmentWitnessConfigSchema\n },\n TConfig\n >\n>\n","import { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\nimport { EnvironmentSchema } from './Schema'\n\nexport const EnvironmentSubsetSchema = `${EnvironmentSchema}.subset`\nexport type EnvironmentSubsetSchema = typeof EnvironmentSubsetSchema\n\nexport type EnvironmentSubset = Payload<{ values: string[] }, EnvironmentSubsetSchema>\n\nexport const isEnvironmentSubsetPayload = isPayloadOfSchemaType<EnvironmentSubset>(EnvironmentSubsetSchema)\n","export const EnvironmentSchema = 'network.xyo.environment'\nexport type EnvironmentSchema = typeof EnvironmentSchema\n","import { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { Payload } from '@xyo-network/payload-model'\nimport { Values, ValuesSchema } from '@xyo-network/values-payload-plugin'\nimport { WitnessConfigSchema } from '@xyo-network/witness-model'\n\nimport { EnvironmentWitnessConfigSchema } from './Config'\nimport { EnvironmentWitnessParams } from './Params'\nimport { EnvironmentSubset, isEnvironmentSubsetPayload } from './Payload'\n\nconst schema = ValuesSchema\n\nexport class EnvironmentWitness<P extends EnvironmentWitnessParams = EnvironmentWitnessParams> extends AbstractWitness<P> {\n static override configSchemas = [EnvironmentWitnessConfigSchema, WitnessConfigSchema]\n protected override observeHandler(payloads?: Payload[]): Payload[] {\n const subsets = payloads?.filter(isEnvironmentSubsetPayload) ?? [undefined]\n return subsets.map(getEnv)\n }\n}\n\nconst getEnv = (payload?: EnvironmentSubset): Values => {\n const subset = payload?.values\n const env = subset ? subset.reduce((acc, key) => ({ ...acc, [key]: process.env[key] }), {}) : process.env\n return { schema, values: env }\n}\n"],"mappings":";;;;AAIO,IAAMA,iCAAiC;;;ACJ9C,SAASC,6BAAsC;;;ACAxC,IAAMC,oBAAoB;;;ADI1B,IAAMC,0BAA0B,GAAGC,iBAAAA;AAKnC,IAAMC,6BAA6BC,sBAAyCH,uBAAAA;;;AETnF,SAASI,uBAAuB;AAEhC,SAAiBC,oBAAoB;AACrC,SAASC,2BAA2B;AAMpC,IAAMC,SAASC;AAER,IAAMC,qBAAN,cAAgGC,gBAAAA;EAXvG,OAWuGA;;;EACrG,OAAgBC,gBAAgB;IAACC;IAAgCC;;EAC9CC,eAAeC,UAAiC;AACjE,UAAMC,UAAUD,UAAUE,OAAOC,0BAAAA,KAA+B;MAACC;;AACjE,WAAOH,QAAQI,IAAIC,MAAAA;EACrB;AACF;AAEA,IAAMA,SAAS,wBAACC,YAAAA;AACd,QAAMC,SAASD,SAASE;AACxB,QAAMC,MAAMF,SAASA,OAAOG,OAAO,CAACC,KAAKC,SAAS;IAAE,GAAGD;IAAK,CAACC,GAAAA,GAAMC,QAAQJ,IAAIG,GAAAA;EAAK,IAAI,CAAC,CAAA,IAAKC,QAAQJ;AACtG,SAAO;IAAElB;IAAQiB,QAAQC;EAAI;AAC/B,GAJe;","names":["EnvironmentWitnessConfigSchema","isPayloadOfSchemaType","EnvironmentSchema","EnvironmentSubsetSchema","EnvironmentSchema","isEnvironmentSubsetPayload","isPayloadOfSchemaType","AbstractWitness","ValuesSchema","WitnessConfigSchema","schema","ValuesSchema","EnvironmentWitness","AbstractWitness","configSchemas","EnvironmentWitnessConfigSchema","WitnessConfigSchema","observeHandler","payloads","subsets","filter","isEnvironmentSubsetPayload","undefined","map","getEnv","payload","subset","values","env","reduce","acc","key","process"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xyo-network/witness-environment",
|
|
3
|
+
"author": {
|
|
4
|
+
"email": "support@xyo.network",
|
|
5
|
+
"name": "XYO Development Team",
|
|
6
|
+
"url": "https://xyo.network"
|
|
7
|
+
},
|
|
8
|
+
"bugs": {
|
|
9
|
+
"email": "support@xyo.network",
|
|
10
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js/issues"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@xyo-network/abstract-witness": "~2.74.1",
|
|
14
|
+
"@xyo-network/core": "~2.74.1",
|
|
15
|
+
"@xyo-network/module": "~2.74.1",
|
|
16
|
+
"@xyo-network/payload-model": "~2.74.1",
|
|
17
|
+
"@xyo-network/values-payload-plugin": "~2.74.1",
|
|
18
|
+
"@xyo-network/witness-model": "~2.74.1"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@xylabs/ts-scripts-yarn3": "^3.0.28",
|
|
22
|
+
"@xylabs/tsconfig": "^3.0.28",
|
|
23
|
+
"typescript": "^5.2.2"
|
|
24
|
+
},
|
|
25
|
+
"description": "Primary SDK for using XYO Protocol 2.0",
|
|
26
|
+
"docs": "dist/docs.json",
|
|
27
|
+
"types": "dist/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"require": {
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"default": "./dist/index.js"
|
|
33
|
+
},
|
|
34
|
+
"import": {
|
|
35
|
+
"types": "./dist/index.d.mts",
|
|
36
|
+
"default": "./dist/index.mjs"
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"./dist/docs.json": {
|
|
40
|
+
"default": "./dist/docs.json"
|
|
41
|
+
},
|
|
42
|
+
"./cjs": {
|
|
43
|
+
"default": "./dist/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./docs": {
|
|
46
|
+
"default": "./dist/docs.json"
|
|
47
|
+
},
|
|
48
|
+
"./esm": {
|
|
49
|
+
"default": "./dist/index.mjs"
|
|
50
|
+
},
|
|
51
|
+
"./package.json": "./package.json"
|
|
52
|
+
},
|
|
53
|
+
"main": "dist/index.js",
|
|
54
|
+
"module": "dist/index.mjs",
|
|
55
|
+
"homepage": "https://xyo.network",
|
|
56
|
+
"license": "LGPL-3.0",
|
|
57
|
+
"publishConfig": {
|
|
58
|
+
"access": "public"
|
|
59
|
+
},
|
|
60
|
+
"repository": {
|
|
61
|
+
"type": "git",
|
|
62
|
+
"url": "https://github.com/XYOracleNetwork/sdk-xyo-client-js.git"
|
|
63
|
+
},
|
|
64
|
+
"sideEffects": false,
|
|
65
|
+
"version": "2.74.1"
|
|
66
|
+
}
|
package/src/Config.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { WithAdditional } from '@xyo-network/core'
|
|
2
|
+
import { Payload } from '@xyo-network/payload-model'
|
|
3
|
+
import { WitnessConfig } from '@xyo-network/witness-model'
|
|
4
|
+
|
|
5
|
+
export const EnvironmentWitnessConfigSchema = 'network.xyo.witness.environment.config'
|
|
6
|
+
export type EnvironmentWitnessConfigSchema = typeof EnvironmentWitnessConfigSchema
|
|
7
|
+
|
|
8
|
+
export type EnvironmentWitnessConfig<TConfig extends Payload | undefined = undefined> = WitnessConfig<
|
|
9
|
+
WithAdditional<
|
|
10
|
+
{
|
|
11
|
+
schema: TConfig extends Payload ? TConfig['schema'] : EnvironmentWitnessConfigSchema
|
|
12
|
+
},
|
|
13
|
+
TConfig
|
|
14
|
+
>
|
|
15
|
+
>
|
package/src/Params.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AnyConfigSchema } from '@xyo-network/module'
|
|
2
|
+
import { WitnessParams } from '@xyo-network/witness-model'
|
|
3
|
+
|
|
4
|
+
import { EnvironmentWitnessConfig } from './Config'
|
|
5
|
+
|
|
6
|
+
export type EnvironmentWitnessParams<TConfig extends AnyConfigSchema<EnvironmentWitnessConfig> = AnyConfigSchema<EnvironmentWitnessConfig>> =
|
|
7
|
+
WitnessParams<TConfig>
|
package/src/Payload.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'
|
|
2
|
+
|
|
3
|
+
import { EnvironmentSchema } from './Schema'
|
|
4
|
+
|
|
5
|
+
export const EnvironmentSubsetSchema = `${EnvironmentSchema}.subset`
|
|
6
|
+
export type EnvironmentSubsetSchema = typeof EnvironmentSubsetSchema
|
|
7
|
+
|
|
8
|
+
export type EnvironmentSubset = Payload<{ values: string[] }, EnvironmentSubsetSchema>
|
|
9
|
+
|
|
10
|
+
export const isEnvironmentSubsetPayload = isPayloadOfSchemaType<EnvironmentSubset>(EnvironmentSubsetSchema)
|
package/src/Schema.ts
ADDED
package/src/Witness.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AbstractWitness } from '@xyo-network/abstract-witness'
|
|
2
|
+
import { Payload } from '@xyo-network/payload-model'
|
|
3
|
+
import { Values, ValuesSchema } from '@xyo-network/values-payload-plugin'
|
|
4
|
+
import { WitnessConfigSchema } from '@xyo-network/witness-model'
|
|
5
|
+
|
|
6
|
+
import { EnvironmentWitnessConfigSchema } from './Config'
|
|
7
|
+
import { EnvironmentWitnessParams } from './Params'
|
|
8
|
+
import { EnvironmentSubset, isEnvironmentSubsetPayload } from './Payload'
|
|
9
|
+
|
|
10
|
+
const schema = ValuesSchema
|
|
11
|
+
|
|
12
|
+
export class EnvironmentWitness<P extends EnvironmentWitnessParams = EnvironmentWitnessParams> extends AbstractWitness<P> {
|
|
13
|
+
static override configSchemas = [EnvironmentWitnessConfigSchema, WitnessConfigSchema]
|
|
14
|
+
protected override observeHandler(payloads?: Payload[]): Payload[] {
|
|
15
|
+
const subsets = payloads?.filter(isEnvironmentSubsetPayload) ?? [undefined]
|
|
16
|
+
return subsets.map(getEnv)
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const getEnv = (payload?: EnvironmentSubset): Values => {
|
|
21
|
+
const subset = payload?.values
|
|
22
|
+
const env = subset ? subset.reduce((acc, key) => ({ ...acc, [key]: process.env[key] }), {}) : process.env
|
|
23
|
+
return { schema, values: env }
|
|
24
|
+
}
|
package/src/index.ts
ADDED