arvo-core 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -1,8 +1,3 @@
1
- ---
2
- title: ArvoEvent
3
- group: Guides
4
- ---
5
-
6
1
  # Arvo
7
2
 
8
3
  ## What is Arvo
@@ -44,3 +39,10 @@ The package also includes utility functions for:
44
39
  - Creating ArvoEvents
45
40
  - Integrating with OpenTelemetry
46
41
  - TypeScript types for core components
42
+
43
+ ## License
44
+
45
+ This package is available under the MIT License. For more details, refer to the [LICENSE.md](LICENSE.md) file in the project repository.
46
+
47
+ ## Change Logs
48
+ See the package change logs [here](CHANGELOG.md).
@@ -1,15 +1,35 @@
1
1
  import { IArvoContract } from './types';
2
2
  import ArvoContract from '.';
3
- import { TelemetryContext } from '../OpenTelemetry/types';
4
3
  /**
5
4
  * Infers the ArvoContract type from a given IArvoContract.
6
5
  */
7
6
  export type InferArvoContract<T> = T extends IArvoContract<infer U, infer V, infer W> ? ArvoContract<U, V, W> : never;
8
7
  /**
9
8
  * Creates an ArvoContract instance from the given contract specification.
9
+ *
10
+ * This function provides a convenient way to create and initialize an ArvoContract
11
+ * with proper type inference.
12
+ *
10
13
  * @template TContract - The type of the contract specification.
11
- * @param {TContract} contractSpec - The contract specification.
12
- * @param {TelemetryContext} [telemetry] - Optional telemetry context for tracing.
14
+ * @param {TContract} contractSpec - The contract specification object.
15
+ * This should include the URI, accepts, and emits properties as defined in IArvoContract.
16
+ *
13
17
  * @returns {InferArvoContract<TContract>} The created ArvoContract instance.
18
+ * The returned type is inferred from the input contract specification.
19
+ *
20
+ * @example
21
+ * const myContract = createArvoContract({
22
+ * uri: 'https://example.com/contracts/myContract',
23
+ * accepts: {
24
+ * type: 'com.example.input',
25
+ * schema: z.object({ name: z.string() }),
26
+ * },
27
+ * emits: [
28
+ * {
29
+ * type: 'com.example.output',
30
+ * schema: z.object({ result: z.number() }),
31
+ * },
32
+ * ],
33
+ * });
14
34
  */
15
- export declare const createArvoContract: <const TContract extends IArvoContract>(contract: TContract, telemetry?: TelemetryContext) => InferArvoContract<TContract>;
35
+ export declare const createArvoContract: <const TContract extends IArvoContract>(contract: TContract) => InferArvoContract<TContract>;
@@ -5,15 +5,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createArvoContract = void 0;
7
7
  var _1 = __importDefault(require("."));
8
- var OpenTelemetry_1 = require("../OpenTelemetry");
9
8
  /**
10
9
  * Creates an ArvoContract instance from the given contract specification.
10
+ *
11
+ * This function provides a convenient way to create and initialize an ArvoContract
12
+ * with proper type inference.
13
+ *
11
14
  * @template TContract - The type of the contract specification.
12
- * @param {TContract} contractSpec - The contract specification.
13
- * @param {TelemetryContext} [telemetry] - Optional telemetry context for tracing.
15
+ * @param {TContract} contractSpec - The contract specification object.
16
+ * This should include the URI, accepts, and emits properties as defined in IArvoContract.
17
+ *
14
18
  * @returns {InferArvoContract<TContract>} The created ArvoContract instance.
19
+ * The returned type is inferred from the input contract specification.
20
+ *
21
+ * @example
22
+ * const myContract = createArvoContract({
23
+ * uri: 'https://example.com/contracts/myContract',
24
+ * accepts: {
25
+ * type: 'com.example.input',
26
+ * schema: z.object({ name: z.string() }),
27
+ * },
28
+ * emits: [
29
+ * {
30
+ * type: 'com.example.output',
31
+ * schema: z.object({ result: z.number() }),
32
+ * },
33
+ * ],
34
+ * });
15
35
  */
16
- var createArvoContract = function (contract, telemetry) {
17
- return (0, OpenTelemetry_1.createOtelSpan)(telemetry || 'Arvo Contract Creator', 'Create ArvoContract', {}, function () { return new _1.default(contract); });
36
+ var createArvoContract = function (contract) {
37
+ return new _1.default(contract);
18
38
  };
19
39
  exports.createArvoContract = createArvoContract;
@@ -19,18 +19,19 @@ export default class ArvoContract<T extends string = string, TAccepts extends Ar
19
19
  private readonly _uri;
20
20
  private readonly _accepts;
21
21
  private readonly _emits;
22
+ readonly description: string | null;
22
23
  /**
23
24
  * Creates an instance of ArvoContract.
24
25
  * @param {IArvoContract<T, TAccepts, TEmits>} params - The contract parameters.
25
26
  */
26
27
  constructor(params: IArvoContract<T, TAccepts, TEmits>);
27
28
  get uri(): T;
28
- get accepts(): Readonly<TAccepts>;
29
+ get accepts(): TAccepts;
29
30
  /**
30
31
  * Gets all emitted event types and schemas as a readonly record.
31
32
  * Use this when you need to access all emitted events at once.
32
33
  */
33
- get emits(): Readonly<Record<ExtractEventType<TEmits>, TEmits>>;
34
+ get emits(): Record<ExtractEventType<TEmits>, TEmits>;
34
35
  /**
35
36
  * Gets a specific emitted event type and schema.
36
37
  * Use this when you need to access a single emitted event by its type.
@@ -39,9 +40,9 @@ export default class ArvoContract<T extends string = string, TAccepts extends Ar
39
40
  * @returns {Readonly<Extract<TEmits, { type: U }>>} The emit record.
40
41
  * @throws {Error} If the emit type is not found in the contract.
41
42
  */
42
- getEmit<U extends ExtractEventType<TEmits>>(type: U): Readonly<Extract<TEmits, {
43
+ getEmit<U extends ExtractEventType<TEmits>>(type: U): Extract<TEmits, {
43
44
  type: U;
44
- }>>;
45
+ }>;
45
46
  /**
46
47
  * Validates the input against the contract's accept schema.
47
48
  * @template U - The type of the input to validate.
@@ -72,9 +73,49 @@ export default class ArvoContract<T extends string = string, TAccepts extends Ar
72
73
  /**
73
74
  * Validates the emits records.
74
75
  * @param {TEmits[]} emits - The emits records to validate.
75
- * @returns {ReadonlyArray<TEmits>} The validated emits records.
76
+ * @returns {Array<TEmits>} The validated emits records.
76
77
  * @private
77
78
  */
78
79
  private validateEmits;
80
+ /**
81
+ * Exports the ArvoContract instance as a plain object conforming to the IArvoContract interface.
82
+ * This method can be used to serialize the contract or to create a new instance with the same parameters.
83
+ *
84
+ * @returns {IArvoContract<T, TAccepts, TEmits>} An object representing the contract, including its URI, accepts, and emits properties.
85
+ */
86
+ export(): IArvoContract<T, TAccepts, TEmits>;
87
+ /**
88
+ * Converts the ArvoContract instance to a JSON Schema representation.
89
+ * This method provides a way to represent the contract's structure and validation rules
90
+ * in a format that conforms to the JSON Schema specification.
91
+ *
92
+ * @returns An object representing the contract in JSON Schema format, including:
93
+ * - uri: The contract's URI
94
+ * - description: The contract's description (if available)
95
+ * - accepts: An object containing the accepted input type and its JSON Schema representation
96
+ * - emits: An array of objects, each containing an emitted event type and its JSON Schema representation
97
+ */
98
+ toJsonSchema(): {
99
+ uri: T;
100
+ description: string | null;
101
+ accepts: {
102
+ type: string;
103
+ schema: import("zod-to-json-schema").JsonSchema7Type & {
104
+ $schema?: string | undefined;
105
+ definitions?: {
106
+ [key: string]: import("zod-to-json-schema").JsonSchema7Type;
107
+ } | undefined;
108
+ };
109
+ };
110
+ emits: {
111
+ type: z.ZodLiteral<string>;
112
+ schema: import("zod-to-json-schema").JsonSchema7Type & {
113
+ $schema?: string | undefined;
114
+ definitions?: {
115
+ [key: string]: import("zod-to-json-schema").JsonSchema7Type;
116
+ } | undefined;
117
+ };
118
+ }[];
119
+ };
79
120
  }
80
121
  export {};
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ var zod_1 = require("zod");
3
4
  var validators_1 = require("./validators");
5
+ var zod_to_json_schema_1 = require("zod-to-json-schema");
4
6
  /**
5
7
  * ArvoContract class represents a contract with defined input and output schemas.
6
8
  * It provides methods for validating inputs and outputs based on the contract's specifications.
@@ -18,6 +20,7 @@ var ArvoContract = /** @class */ (function () {
18
20
  this._uri = validators_1.ArvoContractValidators.contract.uri.parse(params.uri);
19
21
  this._accepts = this.validateAccepts(params.accepts);
20
22
  this._emits = this.validateEmits(params.emits);
23
+ this.description = params.description || null;
21
24
  Object.freeze(this);
22
25
  }
23
26
  Object.defineProperty(ArvoContract.prototype, "uri", {
@@ -29,7 +32,7 @@ var ArvoContract = /** @class */ (function () {
29
32
  });
30
33
  Object.defineProperty(ArvoContract.prototype, "accepts", {
31
34
  get: function () {
32
- return this._accepts;
35
+ return Object.freeze(this._accepts);
33
36
  },
34
37
  enumerable: false,
35
38
  configurable: true
@@ -62,7 +65,7 @@ var ArvoContract = /** @class */ (function () {
62
65
  if (!emit) {
63
66
  throw new Error("Emit type \"".concat(type, "\" not found in contract"));
64
67
  }
65
- return emit;
68
+ return Object.freeze(emit);
66
69
  };
67
70
  /**
68
71
  * Validates the input against the contract's accept schema.
@@ -108,7 +111,7 @@ var ArvoContract = /** @class */ (function () {
108
111
  /**
109
112
  * Validates the emits records.
110
113
  * @param {TEmits[]} emits - The emits records to validate.
111
- * @returns {ReadonlyArray<TEmits>} The validated emits records.
114
+ * @returns {Array<TEmits>} The validated emits records.
112
115
  * @private
113
116
  */
114
117
  ArvoContract.prototype.validateEmits = function (emits) {
@@ -117,6 +120,51 @@ var ArvoContract = /** @class */ (function () {
117
120
  schema: item.schema,
118
121
  }); }));
119
122
  };
123
+ /**
124
+ * Exports the ArvoContract instance as a plain object conforming to the IArvoContract interface.
125
+ * This method can be used to serialize the contract or to create a new instance with the same parameters.
126
+ *
127
+ * @returns {IArvoContract<T, TAccepts, TEmits>} An object representing the contract, including its URI, accepts, and emits properties.
128
+ */
129
+ ArvoContract.prototype.export = function () {
130
+ return {
131
+ uri: this._uri,
132
+ description: this.description,
133
+ accepts: {
134
+ type: this._accepts.type,
135
+ schema: this._accepts.schema,
136
+ },
137
+ emits: this._emits.map(function (emit) { return ({
138
+ type: emit.type,
139
+ schema: emit.schema,
140
+ }); }),
141
+ };
142
+ };
143
+ /**
144
+ * Converts the ArvoContract instance to a JSON Schema representation.
145
+ * This method provides a way to represent the contract's structure and validation rules
146
+ * in a format that conforms to the JSON Schema specification.
147
+ *
148
+ * @returns An object representing the contract in JSON Schema format, including:
149
+ * - uri: The contract's URI
150
+ * - description: The contract's description (if available)
151
+ * - accepts: An object containing the accepted input type and its JSON Schema representation
152
+ * - emits: An array of objects, each containing an emitted event type and its JSON Schema representation
153
+ */
154
+ ArvoContract.prototype.toJsonSchema = function () {
155
+ return {
156
+ uri: this._uri,
157
+ description: this.description,
158
+ accepts: {
159
+ type: this._accepts.type,
160
+ schema: (0, zod_to_json_schema_1.zodToJsonSchema)(this._accepts.schema),
161
+ },
162
+ emits: this._emits.map(function (item) { return ({
163
+ type: zod_1.z.literal(item.type),
164
+ schema: (0, zod_to_json_schema_1.zodToJsonSchema)(item.schema),
165
+ }); }),
166
+ };
167
+ };
120
168
  return ArvoContract;
121
169
  }());
122
170
  exports.default = ArvoContract;
@@ -23,6 +23,8 @@ export interface IArvoContract<TUri extends string = string, TAccepts extends Ar
23
23
  accepts: TAccepts;
24
24
  /** An array of record types that the contract can emit */
25
25
  emits: TEmits[];
26
+ /** (Optional) The description of the contract or its handler */
27
+ description?: string | null;
26
28
  }
27
29
  /**
28
30
  * Resolves the inferred type of an ArvoContractRecord's schema.
@@ -0,0 +1,10 @@
1
+ import ArvoContractLibrary from '.';
2
+ import ArvoContract from '../ArvoContract';
3
+ /**
4
+ * Creates a new ArvoContractLibrary instance with the given ArvoContract instances.
5
+ *
6
+ * @template T - The type of ArvoContract to be stored in the library.
7
+ * @param {...T[]} args - One or more ArvoContract instances to initialize the library.
8
+ * @returns {ArvoContractLibrary<T>} A new ArvoContractLibrary instance containing the provided contracts.
9
+ */
10
+ export declare const createArvoContractLibrary: <T extends ArvoContract>(...args: T[]) => ArvoContractLibrary<T>;
@@ -0,0 +1,22 @@
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
+ exports.createArvoContractLibrary = void 0;
7
+ var _1 = __importDefault(require("."));
8
+ /**
9
+ * Creates a new ArvoContractLibrary instance with the given ArvoContract instances.
10
+ *
11
+ * @template T - The type of ArvoContract to be stored in the library.
12
+ * @param {...T[]} args - One or more ArvoContract instances to initialize the library.
13
+ * @returns {ArvoContractLibrary<T>} A new ArvoContractLibrary instance containing the provided contracts.
14
+ */
15
+ var createArvoContractLibrary = function () {
16
+ var args = [];
17
+ for (var _i = 0; _i < arguments.length; _i++) {
18
+ args[_i] = arguments[_i];
19
+ }
20
+ return new _1.default(args);
21
+ };
22
+ exports.createArvoContractLibrary = createArvoContractLibrary;
@@ -0,0 +1,53 @@
1
+ import ArvoContract from '../ArvoContract';
2
+ /**
3
+ * Extracts the URI type from a given ArvoContract type.
4
+ * @template T - The ArvoContract type to extract from.
5
+ */
6
+ type ExtractContractUri<T> = T extends {
7
+ uri: infer U;
8
+ } ? U : never;
9
+ /**
10
+ * A library class for managing and accessing ArvoContract instances.
11
+ * @template T - The type of ArvoContract stored in the library.
12
+ */
13
+ export default class ArvoContractLibrary<T extends ArvoContract> {
14
+ /**
15
+ * The array of ArvoContract instances stored in the library.
16
+ * @private
17
+ * @readonly
18
+ */
19
+ private readonly _contracts;
20
+ /**
21
+ * Creates an instance of ArvoContractLibrary.
22
+ * @param {T[]} contracts - An array of ArvoContract instances to initialize the library.
23
+ * @throws An error in case the URI are duplicated
24
+ */
25
+ constructor(contracts: T[]);
26
+ /**
27
+ * Returns a readonly array of all ArvoContract instances in the library.
28
+ * @returns {Array<T>} A readonly array of ArvoContract instances.
29
+ */
30
+ list(): Array<T>;
31
+ /**
32
+ * Retrieves an ArvoContract instance by its URI.
33
+ * @template U - The type of the URI to search for.
34
+ * @param {U} uri - The URI of the contract to retrieve.
35
+ * @returns {Extract<T, { uri: U }>} A readonly ArvoContract instance matching the given URI.
36
+ * @throws {Error} If no contract with the given URI is found in the library.
37
+ */
38
+ get<U extends ExtractContractUri<T>>(uri: U): Extract<T, {
39
+ uri: U;
40
+ }>;
41
+ /**
42
+ * Checks if the library contains a contract with the given URI.
43
+ * @param {string} uri - The URI to check for.
44
+ * @returns {boolean} True if a contract with the given URI exists in the library, false otherwise.
45
+ */
46
+ has(uri: string): boolean;
47
+ /**
48
+ * Returns the number of contracts in the library.
49
+ * @returns {number} The number of contracts in the library.
50
+ */
51
+ get size(): number;
52
+ }
53
+ export {};
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
+ if (ar || !(i in from)) {
5
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
+ ar[i] = from[i];
7
+ }
8
+ }
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**
13
+ * A library class for managing and accessing ArvoContract instances.
14
+ * @template T - The type of ArvoContract stored in the library.
15
+ */
16
+ var ArvoContractLibrary = /** @class */ (function () {
17
+ /**
18
+ * Creates an instance of ArvoContractLibrary.
19
+ * @param {T[]} contracts - An array of ArvoContract instances to initialize the library.
20
+ * @throws An error in case the URI are duplicated
21
+ */
22
+ function ArvoContractLibrary(contracts) {
23
+ var uriSet = new Set();
24
+ contracts.forEach(function (contract) {
25
+ if (uriSet.has(contract.uri)) {
26
+ throw new Error("Duplicate contract URI found: ".concat(contract.uri));
27
+ }
28
+ uriSet.add(contract.uri);
29
+ });
30
+ this._contracts = __spreadArray([], contracts, true);
31
+ }
32
+ /**
33
+ * Returns a readonly array of all ArvoContract instances in the library.
34
+ * @returns {Array<T>} A readonly array of ArvoContract instances.
35
+ */
36
+ ArvoContractLibrary.prototype.list = function () {
37
+ return Object.freeze(__spreadArray([], this._contracts, true));
38
+ };
39
+ /**
40
+ * Retrieves an ArvoContract instance by its URI.
41
+ * @template U - The type of the URI to search for.
42
+ * @param {U} uri - The URI of the contract to retrieve.
43
+ * @returns {Extract<T, { uri: U }>} A readonly ArvoContract instance matching the given URI.
44
+ * @throws {Error} If no contract with the given URI is found in the library.
45
+ */
46
+ ArvoContractLibrary.prototype.get = function (uri) {
47
+ var contract = this._contracts.find(function (item) { return item.uri === uri; });
48
+ if (!contract) {
49
+ throw new Error("ArvoContract with URI \"".concat(uri, "\" not found in the library"));
50
+ }
51
+ return Object.freeze(contract);
52
+ };
53
+ /**
54
+ * Checks if the library contains a contract with the given URI.
55
+ * @param {string} uri - The URI to check for.
56
+ * @returns {boolean} True if a contract with the given URI exists in the library, false otherwise.
57
+ */
58
+ ArvoContractLibrary.prototype.has = function (uri) {
59
+ return this._contracts.some(function (contract) { return contract.uri === uri; });
60
+ };
61
+ Object.defineProperty(ArvoContractLibrary.prototype, "size", {
62
+ /**
63
+ * Returns the number of contracts in the library.
64
+ * @returns {number} The number of contracts in the library.
65
+ */
66
+ get: function () {
67
+ return this._contracts.length;
68
+ },
69
+ enumerable: false,
70
+ configurable: true
71
+ });
72
+ return ArvoContractLibrary;
73
+ }());
74
+ exports.default = ArvoContractLibrary;
package/dist/index.d.ts CHANGED
@@ -5,6 +5,12 @@ import { CloudEventContext, CloudEventExtension, ArvoEventData, ArvoExtension, O
5
5
  import { exceptionToSpan, logToSpan, getTelemetryContext, getTelemetryCarrier, createOtelSpan, OTelNull } from './OpenTelemetry';
6
6
  import { TelemetryCarrier, TelemetryContext, TelemetryLogLevel } from './OpenTelemetry/types';
7
7
  import { validateURI, cleanString } from './utils';
8
+ import ArvoContract from './ArvoContract';
9
+ import { createArvoContract, InferArvoContract } from './ArvoContract/helpers';
10
+ import { ArvoContractValidators } from './ArvoContract/validators';
11
+ import { ArvoContractRecord, IArvoContract, ResolveArvoContractRecord } from './ArvoContract/types';
12
+ import ArvoContractLibrary from './ArvoContractLibrary';
13
+ import { createArvoContractLibrary } from './ArvoContractLibrary/helpers';
8
14
  /**
9
15
  * Collection of Zod schemas for validating various aspects of Arvo events.
10
16
  * @property {z.ZodObject} CloudEventContextSchema - Schema for core CloudEvent properties.
@@ -71,4 +77,4 @@ declare const ArvoEventSchemas: {
71
77
  tracestate: string | null;
72
78
  }>;
73
79
  };
74
- export { ArvoEvent, createArvoEvent, ArvoDataContentType, ArvoEventData, CloudEventExtension, ArvoEventSchemas, CloudEventContext, ArvoExtension, OpenTelemetryExtension, CreateArvoEvent, exceptionToSpan, logToSpan, getTelemetryCarrier, getTelemetryContext, createOtelSpan, TelemetryCarrier, TelemetryContext, TelemetryLogLevel, OTelNull, validateURI, cleanString, };
80
+ export { ArvoEvent, createArvoEvent, ArvoDataContentType, ArvoEventData, CloudEventExtension, ArvoEventSchemas, CloudEventContext, ArvoExtension, OpenTelemetryExtension, CreateArvoEvent, exceptionToSpan, logToSpan, getTelemetryCarrier, getTelemetryContext, createOtelSpan, TelemetryCarrier, TelemetryContext, TelemetryLogLevel, OTelNull, validateURI, cleanString, ArvoContract, createArvoContract, ArvoContractValidators, ArvoContractRecord, InferArvoContract, IArvoContract, ResolveArvoContractRecord, ArvoContractLibrary, createArvoContractLibrary, };
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.cleanString = exports.validateURI = exports.OTelNull = exports.createOtelSpan = exports.getTelemetryContext = exports.getTelemetryCarrier = exports.logToSpan = exports.exceptionToSpan = exports.ArvoEventSchemas = exports.ArvoDataContentType = exports.createArvoEvent = exports.ArvoEvent = void 0;
6
+ exports.createArvoContractLibrary = exports.ArvoContractLibrary = exports.ArvoContractValidators = exports.createArvoContract = exports.ArvoContract = exports.cleanString = exports.validateURI = exports.OTelNull = exports.createOtelSpan = exports.getTelemetryContext = exports.getTelemetryCarrier = exports.logToSpan = exports.exceptionToSpan = exports.ArvoEventSchemas = exports.ArvoDataContentType = exports.createArvoEvent = exports.ArvoEvent = void 0;
7
7
  var ArvoEvent_1 = __importDefault(require("./ArvoEvent"));
8
8
  exports.ArvoEvent = ArvoEvent_1.default;
9
9
  var schema_1 = require("./ArvoEvent/schema");
@@ -20,6 +20,16 @@ Object.defineProperty(exports, "OTelNull", { enumerable: true, get: function ()
20
20
  var utils_1 = require("./utils");
21
21
  Object.defineProperty(exports, "validateURI", { enumerable: true, get: function () { return utils_1.validateURI; } });
22
22
  Object.defineProperty(exports, "cleanString", { enumerable: true, get: function () { return utils_1.cleanString; } });
23
+ var ArvoContract_1 = __importDefault(require("./ArvoContract"));
24
+ exports.ArvoContract = ArvoContract_1.default;
25
+ var helpers_2 = require("./ArvoContract/helpers");
26
+ Object.defineProperty(exports, "createArvoContract", { enumerable: true, get: function () { return helpers_2.createArvoContract; } });
27
+ var validators_1 = require("./ArvoContract/validators");
28
+ Object.defineProperty(exports, "ArvoContractValidators", { enumerable: true, get: function () { return validators_1.ArvoContractValidators; } });
29
+ var ArvoContractLibrary_1 = __importDefault(require("./ArvoContractLibrary"));
30
+ exports.ArvoContractLibrary = ArvoContractLibrary_1.default;
31
+ var helpers_3 = require("./ArvoContractLibrary/helpers");
32
+ Object.defineProperty(exports, "createArvoContractLibrary", { enumerable: true, get: function () { return helpers_3.createArvoContractLibrary; } });
23
33
  /**
24
34
  * Collection of Zod schemas for validating various aspects of Arvo events.
25
35
  * @property {z.ZodObject} CloudEventContextSchema - Schema for core CloudEvent properties.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arvo-core",
3
- "version": "0.0.1",
3
+ "version": "1.0.0",
4
4
  "description": "This core package contains all the core classes and components of the Arvo Event Driven System",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1,29 +0,0 @@
1
- #!/bin/bash
2
-
3
- # File name
4
- CHANGELOG_FILE="CHANGELOG.md"
5
-
6
- # Get current date
7
- CURRENT_DATE=$(date +"%Y-%m-%d")
8
-
9
- # Prompt for version
10
- read -p "Enter version number: " VERSION
11
-
12
- # Prompt for description
13
- read -p "Enter change description: " DESCRIPTION
14
-
15
- # Create or append to CHANGELOG.md
16
- if [ ! -f "$CHANGELOG_FILE" ]; then
17
- echo "# Changelog" > "$CHANGELOG_FILE"
18
- echo "" >> "$CHANGELOG_FILE"
19
- fi
20
-
21
- # Add new entry
22
- {
23
- echo "## [$VERSION] - $CURRENT_DATE"
24
- echo ""
25
- echo "- $DESCRIPTION"
26
- echo ""
27
- } >> "$CHANGELOG_FILE"
28
-
29
- echo "Changelog updated successfully!"