@sprucelabs/spruce-agent-utils 0.0.1 → 0.0.2

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 (76) hide show
  1. package/build/.spruce/errors/errors.types.d.ts +13 -0
  2. package/build/.spruce/errors/errors.types.js +2 -0
  3. package/build/.spruce/errors/options.types.d.ts +7 -0
  4. package/build/.spruce/errors/options.types.js +2 -0
  5. package/build/.spruce/errors/spruceAgentUtils/agentLoaderNotConfigured.schema.d.ts +3 -0
  6. package/build/.spruce/errors/spruceAgentUtils/agentLoaderNotConfigured.schema.js +11 -0
  7. package/build/.spruce/schemas/fields/fieldClassMap.d.ts +2 -0
  8. package/build/.spruce/schemas/fields/fieldClassMap.js +4 -0
  9. package/{src/.spruce/schemas/fields/fields.types.ts → build/.spruce/schemas/fields/fields.types.d.ts} +1 -1
  10. package/build/.spruce/schemas/fields/fields.types.js +2 -0
  11. package/build/SpruceAgent.d.ts +13 -0
  12. package/build/SpruceAgent.js +30 -0
  13. package/build/agentAssert.d.ts +7 -0
  14. package/build/agentAssert.js +30 -0
  15. package/build/errors/SpruceError.d.ts +6 -0
  16. package/build/errors/SpruceError.js +25 -0
  17. package/build/errors/agentLoaderNotConfigured.builder.d.ts +6 -0
  18. package/build/errors/agentLoaderNotConfigured.builder.js +8 -0
  19. package/build/esm/.spruce/errors/errors.types.d.ts +13 -0
  20. package/build/esm/.spruce/errors/errors.types.js +1 -0
  21. package/build/esm/.spruce/errors/errors.types.js.map +1 -0
  22. package/build/esm/.spruce/errors/options.types.d.ts +7 -0
  23. package/build/esm/.spruce/errors/options.types.js +1 -0
  24. package/build/esm/.spruce/errors/options.types.js.map +1 -0
  25. package/build/esm/.spruce/errors/spruceAgentUtils/agentLoaderNotConfigured.schema.d.ts +3 -0
  26. package/build/esm/.spruce/errors/spruceAgentUtils/agentLoaderNotConfigured.schema.js +9 -0
  27. package/build/esm/.spruce/errors/spruceAgentUtils/agentLoaderNotConfigured.schema.js.map +1 -0
  28. package/build/esm/.spruce/schemas/fields/fieldClassMap.d.ts +2 -0
  29. package/build/esm/.spruce/schemas/fields/fieldClassMap.js +2 -0
  30. package/build/esm/.spruce/schemas/fields/fieldClassMap.js.map +1 -0
  31. package/build/esm/.spruce/schemas/fields/fields.types.d.ts +1 -0
  32. package/build/esm/.spruce/schemas/fields/fields.types.js +1 -0
  33. package/build/esm/.spruce/schemas/fields/fields.types.js.map +1 -0
  34. package/build/esm/.spruce/schemas/tmp/valueType.tmp.d.ts +8 -0
  35. package/build/esm/.spruce/schemas/tmp/valueType.tmp.js +31 -0
  36. package/build/esm/.spruce/schemas/tmp/valueType.tmp.js.map +1 -0
  37. package/build/esm/.spruce/settings.json +15 -0
  38. package/build/esm/AgentLoader.d.ts +13 -0
  39. package/build/esm/AgentLoader.js +31 -0
  40. package/build/esm/AgentLoader.js.map +1 -0
  41. package/build/esm/SpruceAgent.d.ts +13 -0
  42. package/build/esm/SpruceAgent.js +24 -0
  43. package/build/esm/SpruceAgent.js.map +1 -0
  44. package/build/esm/agentAssert.d.ts +7 -0
  45. package/build/esm/agentAssert.js +25 -0
  46. package/build/esm/agentAssert.js.map +1 -0
  47. package/build/esm/errors/SpruceError.d.ts +6 -0
  48. package/build/esm/errors/SpruceError.js +19 -0
  49. package/build/esm/errors/SpruceError.js.map +1 -0
  50. package/build/esm/errors/agentLoaderNotConfigured.builder.d.ts +6 -0
  51. package/{src/errors/agentLoaderNotConfigured.builder.ts → build/esm/errors/agentLoaderNotConfigured.builder.js} +2 -3
  52. package/build/esm/errors/agentLoaderNotConfigured.builder.js.map +1 -0
  53. package/build/esm/index.d.ts +3 -0
  54. package/build/esm/index.js +3 -0
  55. package/build/esm/index.js.map +1 -0
  56. package/build/index.d.ts +3 -0
  57. package/build/index.js +25 -0
  58. package/package.json +19 -1
  59. package/.circleci/config.yml +0 -80
  60. package/.nvmrc +0 -1
  61. package/.vscode/launch.json +0 -58
  62. package/.vscode/settings.json +0 -67
  63. package/.vscode/tasks.json +0 -112
  64. package/eslint.config.mjs +0 -3
  65. package/src/.spruce/errors/errors.types.ts +0 -29
  66. package/src/.spruce/errors/options.types.ts +0 -10
  67. package/src/.spruce/errors/spruceAgentUtils/agentLoaderNotConfigured.schema.ts +0 -16
  68. package/src/.spruce/schemas/fields/fieldClassMap.ts +0 -6
  69. package/src/SpruceAgent.ts +0 -40
  70. package/src/__tests__/behavioral/AgentLoader.test.ts +0 -53
  71. package/src/__tests__/behavioral/TestingAgentLoader.test.ts +0 -74
  72. package/src/agentAssert.ts +0 -35
  73. package/src/errors/SpruceError.ts +0 -23
  74. package/src/index.ts +0 -3
  75. package/tsconfig.json +0 -39
  76. /package/{src → build}/.spruce/settings.json +0 -0
@@ -0,0 +1,13 @@
1
+ import { default as SchemaEntity } from '@sprucelabs/schema';
2
+ import * as SpruceSchema from '@sprucelabs/schema';
3
+ export declare namespace SpruceErrors.SpruceAgentUtils {
4
+ interface AgentLoaderNotConfigured {
5
+ }
6
+ interface AgentLoaderNotConfiguredSchema extends SpruceSchema.Schema {
7
+ id: 'agentLoaderNotConfigured';
8
+ namespace: 'SpruceAgentUtils';
9
+ name: 'agent loader not configured';
10
+ fields: {};
11
+ }
12
+ type AgentLoaderNotConfiguredEntity = SchemaEntity<SpruceErrors.SpruceAgentUtils.AgentLoaderNotConfiguredSchema>;
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ import { SpruceErrors } from "./errors.types";
2
+ import { ErrorOptions as ISpruceErrorOptions } from "@sprucelabs/error";
3
+ export interface AgentLoaderNotConfiguredErrorOptions extends SpruceErrors.SpruceAgentUtils.AgentLoaderNotConfigured, ISpruceErrorOptions {
4
+ code: 'AGENT_LOADER_NOT_CONFIGURED';
5
+ }
6
+ type ErrorOptions = AgentLoaderNotConfiguredErrorOptions;
7
+ export default ErrorOptions;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ import { SpruceErrors } from '../errors.types';
2
+ declare const agentLoaderNotConfiguredSchema: SpruceErrors.SpruceAgentUtils.AgentLoaderNotConfiguredSchema;
3
+ export default agentLoaderNotConfiguredSchema;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_1 = require("@sprucelabs/schema");
4
+ const agentLoaderNotConfiguredSchema = {
5
+ id: 'agentLoaderNotConfigured',
6
+ namespace: 'SpruceAgentUtils',
7
+ name: 'agent loader not configured',
8
+ fields: {}
9
+ };
10
+ schema_1.SchemaRegistry.getInstance().trackSchema(agentLoaderNotConfiguredSchema);
11
+ exports.default = agentLoaderNotConfiguredSchema;
@@ -0,0 +1,2 @@
1
+ import { fieldClassMap } from '@sprucelabs/schema';
2
+ export default fieldClassMap;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_1 = require("@sprucelabs/schema");
4
+ exports.default = schema_1.fieldClassMap;
@@ -1 +1 @@
1
- export { FieldDefinitions, FieldDefinitionMap, FieldValueTypeGeneratorMap, FieldMap } from '@sprucelabs/schema'
1
+ export { FieldDefinitions, FieldDefinitionMap, FieldValueTypeGeneratorMap, FieldMap } from '@sprucelabs/schema';
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { MercuryClient } from '@sprucelabs/mercury-client';
2
+ export default class SpruceAgent implements AgentLoader {
3
+ private static instance?;
4
+ private client;
5
+ private constructor();
6
+ static setup(client: MercuryClient): void;
7
+ static reset(): void;
8
+ static getInstance(): SpruceAgent;
9
+ getName(): Promise<string>;
10
+ }
11
+ export interface AgentLoader {
12
+ getName(): Promise<string>;
13
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const SpruceError_1 = __importDefault(require("./errors/SpruceError"));
7
+ class SpruceAgent {
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ static setup(client) {
12
+ this.instance = new SpruceAgent(client);
13
+ }
14
+ static reset() {
15
+ delete this.instance;
16
+ }
17
+ static getInstance() {
18
+ if (this.instance) {
19
+ return this.instance;
20
+ }
21
+ throw new SpruceError_1.default({
22
+ code: 'AGENT_LOADER_NOT_CONFIGURED',
23
+ });
24
+ }
25
+ async getName() {
26
+ const [{ name }] = await this.client.emitAndFlattenResponses('get-agent-name::v2020_12_25');
27
+ return name;
28
+ }
29
+ }
30
+ exports.default = SpruceAgent;
@@ -0,0 +1,7 @@
1
+ import { MercuryClient } from '@sprucelabs/mercury-client';
2
+ declare const agentAssert: {
3
+ beforeEach(client: MercuryClient): Promise<void>;
4
+ getName: () => string;
5
+ includesAgentName: (text: string) => void;
6
+ };
7
+ export default agentAssert;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const schema_1 = require("@sprucelabs/schema");
7
+ const spruce_test_fixtures_1 = require("@sprucelabs/spruce-test-fixtures");
8
+ const test_utils_1 = require("@sprucelabs/test-utils");
9
+ const SpruceAgent_1 = __importDefault(require("./SpruceAgent"));
10
+ let sharedClient;
11
+ let name = (0, test_utils_1.generateId)();
12
+ const agentAssert = {
13
+ async beforeEach(client) {
14
+ name = (0, test_utils_1.generateId)();
15
+ sharedClient = client;
16
+ await spruce_test_fixtures_1.eventFaker.on('get-agent-name::v2020_12_25', () => {
17
+ return { name };
18
+ });
19
+ },
20
+ getName: () => {
21
+ test_utils_1.assert.isTruthy(sharedClient, 'You must call agentAssert.beforeEach(this.fakedClient) in your test to use agentAssert');
22
+ SpruceAgent_1.default.getInstance();
23
+ return name;
24
+ },
25
+ includesAgentName: (text) => {
26
+ (0, schema_1.assertOptions)({ text }, ['text']);
27
+ test_utils_1.assert.doesInclude(text, name, `The tex must include agent name!`);
28
+ },
29
+ };
30
+ exports.default = agentAssert;
@@ -0,0 +1,6 @@
1
+ import BaseSpruceError from '@sprucelabs/error';
2
+ import ErrorOptions from './../.spruce/errors/options.types';
3
+ export default class SpruceError extends BaseSpruceError<ErrorOptions> {
4
+ /** an easy to understand version of the errors */
5
+ friendlyMessage(): string;
6
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const error_1 = __importDefault(require("@sprucelabs/error"));
7
+ class SpruceError extends error_1.default {
8
+ /** an easy to understand version of the errors */
9
+ friendlyMessage() {
10
+ const { options } = this;
11
+ let message;
12
+ switch (options?.code) {
13
+ case 'AGENT_LOADER_NOT_CONFIGURED':
14
+ message = `The agent loader has not been configured. Please call AgentLoader.setup(...) first. Best place is probably in the did-boot of your skill.`;
15
+ break;
16
+ default:
17
+ message = super.friendlyMessage();
18
+ }
19
+ const fullMessage = options.friendlyMessage
20
+ ? options.friendlyMessage
21
+ : message;
22
+ return fullMessage;
23
+ }
24
+ }
25
+ exports.default = SpruceError;
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ id: string;
3
+ name: string;
4
+ fields: {};
5
+ };
6
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const schema_1 = require("@sprucelabs/schema");
4
+ exports.default = (0, schema_1.buildErrorSchema)({
5
+ id: 'agentLoaderNotConfigured',
6
+ name: 'agent loader not configured',
7
+ fields: {},
8
+ });
@@ -0,0 +1,13 @@
1
+ import { default as SchemaEntity } from '@sprucelabs/schema';
2
+ import * as SpruceSchema from '@sprucelabs/schema';
3
+ export declare namespace SpruceErrors.SpruceAgentUtils {
4
+ interface AgentLoaderNotConfigured {
5
+ }
6
+ interface AgentLoaderNotConfiguredSchema extends SpruceSchema.Schema {
7
+ id: 'agentLoaderNotConfigured';
8
+ namespace: 'SpruceAgentUtils';
9
+ name: 'agent loader not configured';
10
+ fields: {};
11
+ }
12
+ type AgentLoaderNotConfiguredEntity = SchemaEntity<SpruceErrors.SpruceAgentUtils.AgentLoaderNotConfiguredSchema>;
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.types.js","sourceRoot":"","sources":["../../../src/.spruce/errors/errors.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { SpruceErrors } from "./errors.types";
2
+ import { ErrorOptions as ISpruceErrorOptions } from "@sprucelabs/error";
3
+ export interface AgentLoaderNotConfiguredErrorOptions extends SpruceErrors.SpruceAgentUtils.AgentLoaderNotConfigured, ISpruceErrorOptions {
4
+ code: 'AGENT_LOADER_NOT_CONFIGURED';
5
+ }
6
+ type ErrorOptions = AgentLoaderNotConfiguredErrorOptions;
7
+ export default ErrorOptions;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.types.js","sourceRoot":"","sources":["../../../src/.spruce/errors/options.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { SpruceErrors } from '../errors.types';
2
+ declare const agentLoaderNotConfiguredSchema: SpruceErrors.SpruceAgentUtils.AgentLoaderNotConfiguredSchema;
3
+ export default agentLoaderNotConfiguredSchema;
@@ -0,0 +1,9 @@
1
+ import { SchemaRegistry } from '@sprucelabs/schema';
2
+ const agentLoaderNotConfiguredSchema = {
3
+ id: 'agentLoaderNotConfigured',
4
+ namespace: 'SpruceAgentUtils',
5
+ name: 'agent loader not configured',
6
+ fields: {}
7
+ };
8
+ SchemaRegistry.getInstance().trackSchema(agentLoaderNotConfiguredSchema);
9
+ export default agentLoaderNotConfiguredSchema;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentLoaderNotConfigured.schema.js","sourceRoot":"","sources":["../../../../src/.spruce/errors/spruceAgentUtils/agentLoaderNotConfigured.schema.ts"],"names":[],"mappings":";;AAAA,+CAAmD;AAKnD,MAAM,8BAA8B,GAAkE;IACrG,EAAE,EAAE,0BAA0B;IAC9B,SAAS,EAAE,kBAAkB;IAC7B,IAAI,EAAE,6BAA6B;IAC/B,MAAM,EAAE,EACP;CACL,CAAA;AAED,uBAAc,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAA;AAExE,kBAAe,8BAA8B,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { fieldClassMap } from '@sprucelabs/schema';
2
+ export default fieldClassMap;
@@ -0,0 +1,2 @@
1
+ import { fieldClassMap } from '@sprucelabs/schema';
2
+ export default fieldClassMap;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldClassMap.js","sourceRoot":"","sources":["../../../../src/.spruce/schemas/fields/fieldClassMap.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAKlD,kBAAe,sBAAa,CAAA"}
@@ -0,0 +1 @@
1
+ export { FieldDefinitions, FieldDefinitionMap, FieldValueTypeGeneratorMap, FieldMap } from '@sprucelabs/schema';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.types.js","sourceRoot":"","sources":["../../../../src/.spruce/schemas/fields/fields.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ declare const valueTypes: {
2
+ SpruceAgentUtils: {
3
+ agentLoaderNotConfigured: {
4
+ __latest: {};
5
+ };
6
+ };
7
+ };
8
+ export default valueTypes;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fieldClassMap_1 = __importDefault(require('./../fields/fieldClassMap.js'));
7
+ const schemaTemplateItems = [{ "id": "agentLoaderNotConfigured", "namespace": "SpruceAgentUtils", "schema": { "namespace": "SpruceAgentUtils", "id": "agentLoaderNotConfigured", "name": "agent loader not configured", "fields": {} }, "nameReadable": "agent loader not configured", "nameCamel": "agentLoaderNotConfigured", "namePascal": "AgentLoaderNotConfigured", "isNested": false, "destinationDir": "#spruce/errors" }];
8
+ // @ts-ignore
9
+ const generateTypeLiteral = (definition, renderAs, importAs) => {
10
+ const options = {
11
+ language: 'ts',
12
+ // @ts-ignore
13
+ templateItems: schemaTemplateItems,
14
+ globalNamespace: 'SpruceErrors',
15
+ definition,
16
+ importAs,
17
+ renderAs
18
+ };
19
+ const FieldClass = fieldClassMap_1.default[definition.type];
20
+ const details = FieldClass.generateTemplateDetails(options);
21
+ return details.valueType;
22
+ };
23
+ const valueTypes = {
24
+ "SpruceAgentUtils": {
25
+ "agentLoaderNotConfigured": {
26
+ "__latest": {},
27
+ },
28
+ },
29
+ };
30
+ exports.default = valueTypes;
31
+ //# sourceMappingURL=valueType.tmp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valueType.tmp.js","sourceRoot":"","sources":["../../../../src/.spruce/schemas/tmp/valueType.tmp.ts"],"names":[],"mappings":";;;;;AAEA,yFAAgE;AAOhE,MAAM,mBAAmB,GAAG,CAAC,EAAC,IAAI,EAAC,0BAA0B,EAAC,WAAW,EAAC,kBAAkB,EAAC,QAAQ,EAAC,EAAC,WAAW,EAAC,kBAAkB,EAAC,IAAI,EAAC,0BAA0B,EAAC,MAAM,EAAC,6BAA6B,EAAC,QAAQ,EAAC,EAAE,EAAC,EAAC,cAAc,EAAC,6BAA6B,EAAC,WAAW,EAAC,0BAA0B,EAAC,YAAY,EAAC,0BAA0B,EAAC,UAAU,EAAC,KAAK,EAAC,gBAAgB,EAAC,gBAAgB,EAAC,CAAC,CAAA;AACxY,aAAa;AACb,MAAM,mBAAmB,GAAG,CAAC,UAA4B,EAAE,QAA0B,EAAE,QAAgB,EAAE,EAAE;IAC1G,MAAM,OAAO,GAAiD;QAC7D,QAAQ,EAAE,IAAI;QACd,aAAa;QACb,aAAa,EAAE,mBAAmB;QAClC,eAAe,EAAE,cAAc;QAC/B,UAAU;QACV,QAAQ;QACR,QAAQ;KACR,CAAA;IAED,MAAM,UAAU,GAAG,uBAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,UAAU,CAAC,uBAAuB,CACjD,OAAc,CACd,CAAA;IAED,OAAO,OAAO,CAAC,SAAS,CAAA;AACzB,CAAC,CAAA;AAGD,MAAM,UAAU,GAAG;IAClB,kBAAkB,EAAE;QACnB,0BAA0B,EAAE;YAC3B,UAAU,EAAC,EACV;SACD;KACD;CACD,CAAA;AAED,kBAAe,UAAU,CAAA"}
@@ -0,0 +1,15 @@
1
+ {
2
+ "scriptUpdater": {
3
+ "skipped": []
4
+ },
5
+ "skipped": [
6
+ "skill"
7
+ ],
8
+ "installed": [
9
+ "test",
10
+ "schema",
11
+ "error",
12
+ "permission",
13
+ "event"
14
+ ]
15
+ }
@@ -0,0 +1,13 @@
1
+ import { MercuryClient } from '@sprucelabs/mercury-client';
2
+ export default class SpruceAgent implements AgentLoader {
3
+ private static instance?;
4
+ private client;
5
+ private constructor();
6
+ static setup(client: MercuryClient): void;
7
+ static reset(): void;
8
+ static getInstance(): SpruceAgent;
9
+ getName(): Promise<string>;
10
+ }
11
+ export interface AgentLoader {
12
+ getName(): Promise<string>;
13
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const SpruceError_1 = __importDefault(require('./errors/SpruceError.js'));
7
+ class SpruceAgent {
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ static setup(client) {
12
+ this.instance = new SpruceAgent(client);
13
+ }
14
+ static reset() {
15
+ delete this.instance;
16
+ }
17
+ static getInstance() {
18
+ if (this.instance) {
19
+ return this.instance;
20
+ }
21
+ throw new SpruceError_1.default({
22
+ code: 'AGENT_LOADER_NOT_CONFIGURED',
23
+ });
24
+ }
25
+ async getName() {
26
+ const [{ name }] = await this.client.emitAndFlattenResponses('get-agent-name::v2020_12_25');
27
+ return name;
28
+ }
29
+ }
30
+ exports.default = SpruceAgent;
31
+ //# sourceMappingURL=AgentLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentLoader.js","sourceRoot":"","sources":["../src/AgentLoader.ts"],"names":[],"mappings":";;;;;AACA,uEAA8C;AAE9C,MAAqB,WAAW;IAI5B,YAAoB,MAAqB;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAqB;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,MAAM,CAAC,KAAK;QACf,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEM,MAAM,CAAC,WAAW;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,QAAQ,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,qBAAW,CAAC;YAClB,IAAI,EAAE,6BAA6B;SACtC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,uBAAuB,CACxD,6BAA6B,CAChC,CAAA;QAED,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAhCD,8BAgCC"}
@@ -0,0 +1,13 @@
1
+ import { MercuryClient } from '@sprucelabs/mercury-client';
2
+ export default class SpruceAgent implements AgentLoader {
3
+ private static instance?;
4
+ private client;
5
+ private constructor();
6
+ static setup(client: MercuryClient): void;
7
+ static reset(): void;
8
+ static getInstance(): SpruceAgent;
9
+ getName(): Promise<string>;
10
+ }
11
+ export interface AgentLoader {
12
+ getName(): Promise<string>;
13
+ }
@@ -0,0 +1,24 @@
1
+ import SpruceError from './errors/SpruceError.js';
2
+ export default class SpruceAgent {
3
+ constructor(client) {
4
+ this.client = client;
5
+ }
6
+ static setup(client) {
7
+ this.instance = new SpruceAgent(client);
8
+ }
9
+ static reset() {
10
+ delete this.instance;
11
+ }
12
+ static getInstance() {
13
+ if (this.instance) {
14
+ return this.instance;
15
+ }
16
+ throw new SpruceError({
17
+ code: 'AGENT_LOADER_NOT_CONFIGURED',
18
+ });
19
+ }
20
+ async getName() {
21
+ const [{ name }] = await this.client.emitAndFlattenResponses('get-agent-name::v2020_12_25');
22
+ return name;
23
+ }
24
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpruceAgent.js","sourceRoot":"","sources":["../src/SpruceAgent.ts"],"names":[],"mappings":";;;;;AACA,uEAA8C;AAE9C,MAAqB,WAAW;IAI5B,YAAoB,MAAqB;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAqB;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,MAAM,CAAC,KAAK;QACf,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEM,MAAM,CAAC,WAAW;QACrB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,QAAQ,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,qBAAW,CAAC;YAClB,IAAI,EAAE,6BAA6B;SACtC,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,uBAAuB,CACxD,6BAA6B,CAChC,CAAA;QAED,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AAhCD,8BAgCC"}
@@ -0,0 +1,7 @@
1
+ import { MercuryClient } from '@sprucelabs/mercury-client';
2
+ declare const agentAssert: {
3
+ beforeEach(client: MercuryClient): Promise<void>;
4
+ getName: () => string;
5
+ includesAgentName: (text: string) => void;
6
+ };
7
+ export default agentAssert;
@@ -0,0 +1,25 @@
1
+ import { assertOptions } from '@sprucelabs/schema';
2
+ import { eventFaker } from '@sprucelabs/spruce-test-fixtures';
3
+ import { assert, generateId } from '@sprucelabs/test-utils';
4
+ import SpruceAgent from './SpruceAgent.js';
5
+ let sharedClient;
6
+ let name = generateId();
7
+ const agentAssert = {
8
+ async beforeEach(client) {
9
+ name = generateId();
10
+ sharedClient = client;
11
+ await eventFaker.on('get-agent-name::v2020_12_25', () => {
12
+ return { name };
13
+ });
14
+ },
15
+ getName: () => {
16
+ assert.isTruthy(sharedClient, 'You must call agentAssert.beforeEach(this.fakedClient) in your test to use agentAssert');
17
+ SpruceAgent.getInstance();
18
+ return name;
19
+ },
20
+ includesAgentName: (text) => {
21
+ assertOptions({ text }, ['text']);
22
+ assert.doesInclude(text, name, `The tex must include agent name!`);
23
+ },
24
+ };
25
+ export default agentAssert;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentAssert.js","sourceRoot":"","sources":["../src/agentAssert.ts"],"names":[],"mappings":";;;;;AACA,+CAAkD;AAClD,2EAA6D;AAC7D,uDAA2D;AAC3D,gEAAuC;AAEvC,IAAI,YAA2B,CAAA;AAC/B,IAAI,IAAI,GAAW,IAAA,uBAAU,GAAE,CAAA;AAE/B,MAAM,WAAW,GAAG;IAChB,KAAK,CAAC,UAAU,CAAC,MAAqB;QAClC,IAAI,GAAG,IAAA,uBAAU,GAAE,CAAA;QACnB,YAAY,GAAG,MAAM,CAAA;QACrB,MAAM,iCAAU,CAAC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACpD,OAAO,EAAE,IAAI,EAAE,CAAA;QACnB,CAAC,CAAC,CAAA;IACN,CAAC;IACD,OAAO,EAAE,GAAG,EAAE;QACV,mBAAM,CAAC,QAAQ,CACX,YAAY,EACZ,wFAAwF,CAC3F,CAAA;QAED,qBAAW,CAAC,WAAW,EAAE,CAAA;QAEzB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,iBAAiB,EAAE,CAAC,IAAY,EAAE,EAAE;QAChC,IAAA,sBAAa,EAAC,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;QACjC,mBAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAA;IACtE,CAAC;CACJ,CAAA;AAED,kBAAe,WAAW,CAAA"}
@@ -0,0 +1,6 @@
1
+ import BaseSpruceError from '@sprucelabs/error';
2
+ import ErrorOptions from './../.spruce/errors/options.types';
3
+ export default class SpruceError extends BaseSpruceError<ErrorOptions> {
4
+ /** an easy to understand version of the errors */
5
+ friendlyMessage(): string;
6
+ }
@@ -0,0 +1,19 @@
1
+ import BaseSpruceError from '@sprucelabs/error';
2
+ export default class SpruceError extends BaseSpruceError {
3
+ /** an easy to understand version of the errors */
4
+ friendlyMessage() {
5
+ const { options } = this;
6
+ let message;
7
+ switch (options === null || options === void 0 ? void 0 : options.code) {
8
+ case 'AGENT_LOADER_NOT_CONFIGURED':
9
+ message = `The agent loader has not been configured. Please call AgentLoader.setup(...) first. Best place is probably in the did-boot of your skill.`;
10
+ break;
11
+ default:
12
+ message = super.friendlyMessage();
13
+ }
14
+ const fullMessage = options.friendlyMessage
15
+ ? options.friendlyMessage
16
+ : message;
17
+ return fullMessage;
18
+ }
19
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpruceError.js","sourceRoot":"","sources":["../../src/errors/SpruceError.ts"],"names":[],"mappings":";;;;;AAAA,8DAA+C;AAG/C,MAAqB,WAAY,SAAQ,eAA6B;IAClE,kDAAkD;IAC3C,eAAe;QAClB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QACxB,IAAI,OAAO,CAAA;QACX,QAAQ,OAAO,EAAE,IAAI,EAAE,CAAC;YACpB,KAAK,6BAA6B;gBAC9B,OAAO,GAAG,2IAA2I,CAAA;gBACrJ,MAAK;YACT;gBACI,OAAO,GAAG,KAAK,CAAC,eAAe,EAAE,CAAA;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe;YACvC,CAAC,CAAC,OAAO,CAAC,eAAe;YACzB,CAAC,CAAC,OAAO,CAAA;QAEb,OAAO,WAAW,CAAA;IACtB,CAAC;CACJ;AAnBD,8BAmBC"}
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ id: string;
3
+ name: string;
4
+ fields: {};
5
+ };
6
+ export default _default;
@@ -1,7 +1,6 @@
1
- import { buildErrorSchema } from '@sprucelabs/schema'
2
-
1
+ import { buildErrorSchema } from '@sprucelabs/schema';
3
2
  export default buildErrorSchema({
4
3
  id: 'agentLoaderNotConfigured',
5
4
  name: 'agent loader not configured',
6
5
  fields: {},
7
- })
6
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentLoaderNotConfigured.builder.js","sourceRoot":"","sources":["../../src/errors/agentLoaderNotConfigured.builder.ts"],"names":[],"mappings":";;AAAA,+CAAqD;AAErD,kBAAe,IAAA,yBAAgB,EAAC;IAC5B,EAAE,EAAE,0BAA0B;IAC9B,IAAI,EAAE,6BAA6B;IACnC,MAAM,EAAE,EAAE;CACb,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { default as SpruceAgent } from './SpruceAgent';
2
+ export * from './SpruceAgent';
3
+ export { default as agentAssert } from './agentAssert';
@@ -0,0 +1,3 @@
1
+ export { default as SpruceAgent } from './SpruceAgent.js';
2
+ export * from './SpruceAgent.js';
3
+ export { default as agentAssert } from './agentAssert.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,gDAA6B;AAC7B,6CAAsD;AAA7C,2HAAA,OAAO,OAAe"}
@@ -0,0 +1,3 @@
1
+ export { default as SpruceAgent } from './SpruceAgent';
2
+ export * from './SpruceAgent';
3
+ export { default as agentAssert } from './agentAssert';
package/build/index.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.agentAssert = exports.SpruceAgent = void 0;
21
+ var SpruceAgent_1 = require("./SpruceAgent");
22
+ Object.defineProperty(exports, "SpruceAgent", { enumerable: true, get: function () { return __importDefault(SpruceAgent_1).default; } });
23
+ __exportStar(require("./SpruceAgent"), exports);
24
+ var agentAssert_1 = require("./agentAssert");
25
+ Object.defineProperty(exports, "agentAssert", { enumerable: true, get: function () { return __importDefault(agentAssert_1).default; } });