arvo-core 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
14
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
15
+ if (ar || !(i in from)) {
16
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
17
+ ar[i] = from[i];
18
+ }
19
+ }
20
+ return to.concat(ar || Array.prototype.slice.call(from));
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.OTelNull = exports.createOtelSpan = exports.exceptionToSpan = exports.logToSpan = exports.getTelemetryCarrier = exports.getTelemetryContext = void 0;
24
+ var api_1 = require("@opentelemetry/api");
25
+ /**
26
+ * Retrieves the active context based on the provided trace header.
27
+ * @param traceparent - The trace header string.
28
+ * @returns The active context.
29
+ */
30
+ var getTelemetryContext = function (traceparent) {
31
+ if (traceparent) {
32
+ return api_1.propagation.extract(api_1.context.active(), { traceparent: traceparent });
33
+ }
34
+ return api_1.context.active();
35
+ };
36
+ exports.getTelemetryContext = getTelemetryContext;
37
+ /**
38
+ * Parses the context from a span and active context.
39
+ * @param span - The span to parse the context from.
40
+ * @param activeContext - The active context (optional, defaults to the current active context).
41
+ * @returns The parsed telemetry context.
42
+ */
43
+ var getTelemetryCarrier = function (span, activeContext) {
44
+ if (activeContext === void 0) { activeContext = api_1.context.active(); }
45
+ var carrier = {
46
+ traceparent: null,
47
+ tracestate: null,
48
+ };
49
+ api_1.propagation.inject(activeContext, carrier);
50
+ if (!carrier.traceparent) {
51
+ carrier.traceparent = "00-".concat(span.spanContext().traceId, "-").concat(span.spanContext().spanId, "-0").concat(span.spanContext().traceFlags);
52
+ }
53
+ return carrier;
54
+ };
55
+ exports.getTelemetryCarrier = getTelemetryCarrier;
56
+ /**
57
+ * Logs a message to a span with additional parameters.
58
+ * @param span - The span to log the message to.
59
+ * @param params - The parameters for the log message.
60
+ * @param params.level - The log level.
61
+ * @param params.message - The log message.
62
+ */
63
+ var logToSpan = function (span, params) {
64
+ span.addEvent('log_message', __assign(__assign({}, params), { timestamp: performance.now() }));
65
+ };
66
+ exports.logToSpan = logToSpan;
67
+ /**
68
+ * Logs an exception to a span and sets exception-related attributes.
69
+ * @param span - The span to log the exception to.
70
+ * @param level - The log level for the exception.
71
+ * @param error - The error object to be logged.
72
+ */
73
+ var exceptionToSpan = function (span, level, error) {
74
+ (0, exports.logToSpan)(span, {
75
+ level: level,
76
+ message: error.message,
77
+ });
78
+ span.setAttributes({
79
+ 'exception.type': "[".concat(level, "] ").concat(error.name),
80
+ 'exception.message': error.message,
81
+ 'exception.stacktrace': error.stack || exports.OTelNull,
82
+ });
83
+ };
84
+ exports.exceptionToSpan = exceptionToSpan;
85
+ /**
86
+ * Creates a new OpenTelemetry span and executes the provided function within its context.
87
+ *
88
+ * This function enhances tracing by creating a new span, executing the given function within
89
+ * that span's context, and properly handling any errors that may occur. It also ensures that
90
+ * the wrapped function has access to the current span.
91
+ *
92
+ * @template TArgs - The type of the arguments array for the wrapped function.
93
+ * @template TReturn - The return type of the wrapped function.
94
+ *
95
+ * @param {TelemetryContext | string} telemetryContext - The OpenTelemetry context object or a tracer name.
96
+ * @param {string} spanName - The name of the span to be created.
97
+ * @param {SpanOptions} [spanOptions] - Optional configuration for the span.
98
+ * @param {(currentSpan: Span, ...args: TArgs) => TReturn} wrappedFunction - The function to be executed within the new span.
99
+ * This function will receive the current span as its first argument.
100
+ * @param {ThisParameterType<TFunction>} [thisArg] - The 'this' context to be used when calling the wrapped function.
101
+ * @param {...TArgs} args - The arguments to be passed to the wrapped function.
102
+ *
103
+ * @returns {TReturn} The result of the wrapped function execution.
104
+ *
105
+ * @throws {Error} Rethrows any error that occurs during the execution of the wrapped function.
106
+ *
107
+ * @example
108
+ * // Using with TelemetryContext
109
+ * const telemetryContext: TelemetryContext = {
110
+ * span: currentSpan,
111
+ * tracer: currentTracer,
112
+ * context: { traceparent: 'traceparent-value', tracestate: 'tracestate-value' }
113
+ * };
114
+ * const result = createOtelSpan(
115
+ * telemetryContext,
116
+ * 'ProcessOrder',
117
+ * { attributes: { orderId: '12345' } },
118
+ * (span, orderId) => {
119
+ * span.addEvent('Processing order');
120
+ * return processOrder(orderId);
121
+ * },
122
+ * null,
123
+ * '12345'
124
+ * );
125
+ *
126
+ * @example
127
+ * // Using with tracer name
128
+ * const result = createOtelSpan(
129
+ * 'OrderService',
130
+ * 'FetchOrderDetails',
131
+ * undefined,
132
+ * (span, orderId) => {
133
+ * span.setAttribute('orderId', orderId);
134
+ * return fetchOrderDetails(orderId);
135
+ * },
136
+ * null,
137
+ * '12345'
138
+ * );
139
+ */
140
+ var createOtelSpan = function (telemetryContext, spanName, spanOptions, wrappedFunction, thisArg) {
141
+ var args = [];
142
+ for (var _i = 5; _i < arguments.length; _i++) {
143
+ args[_i - 5] = arguments[_i];
144
+ }
145
+ var activeContext = api_1.context.active();
146
+ var activeTracer;
147
+ if (typeof telemetryContext === 'string') {
148
+ activeTracer = api_1.trace.getTracer(telemetryContext);
149
+ }
150
+ else {
151
+ activeContext = (0, exports.getTelemetryContext)(telemetryContext.context.traceparent);
152
+ activeTracer = telemetryContext.tracer;
153
+ }
154
+ var newSpan = activeTracer.startSpan(spanName, spanOptions, activeContext);
155
+ try {
156
+ var result = api_1.context.with(api_1.trace.setSpan(activeContext, newSpan), function () {
157
+ return wrappedFunction.call.apply(wrappedFunction, __spreadArray([thisArg, newSpan], args, false));
158
+ });
159
+ newSpan.setStatus({
160
+ code: api_1.SpanStatusCode.OK,
161
+ });
162
+ newSpan.end();
163
+ return result;
164
+ }
165
+ catch (error) {
166
+ (0, exports.exceptionToSpan)(newSpan, 'ERROR', error);
167
+ newSpan.setStatus({
168
+ code: api_1.SpanStatusCode.ERROR,
169
+ message: error.message,
170
+ });
171
+ newSpan.end();
172
+ throw error;
173
+ }
174
+ };
175
+ exports.createOtelSpan = createOtelSpan;
176
+ /**
177
+ * A constant representing a null or not applicable value in OpenTelemetry context.
178
+ */
179
+ exports.OTelNull = 'N/A';
@@ -0,0 +1,40 @@
1
+ import { Span, Tracer } from '@opentelemetry/api';
2
+ /**
3
+ * Represents the available log levels for telemetry.
4
+ * - DEBUG: Used for detailed information, typically of interest only when diagnosing problems.
5
+ * - INFO: Used for general information about program execution.
6
+ * - WARNING: Indicates an unexpected event or a potential problem that doesn't prevent the program from working.
7
+ * - ERROR: Used for more serious problems that prevent a specific function or feature from working correctly.
8
+ * - CRITICAL: Used for very serious errors that might prevent the entire program from running.
9
+ */
10
+ export type TelemetryLogLevel = 'DEBUG' | 'INFO' | 'WARNING' | 'ERROR' | 'CRITICAL';
11
+ /**
12
+ * Represents the context for telemetry.
13
+ * See reference standard documentation [here](https://www.w3.org/TR/trace-context/#design-overview)
14
+ */
15
+ export type TelemetryCarrier = {
16
+ /** The traceparent header value */
17
+ traceparent: string | null;
18
+ /** The tracestate header value */
19
+ tracestate: string | null;
20
+ };
21
+ /**
22
+ * Represents the OpenTelemetry context for a handler.
23
+ * See reference documentation [here](https://opentelemetry.io/docs/languages/js/instrumentation/#traces)
24
+ */
25
+ export type TelemetryContext = {
26
+ /**
27
+ * The current OpenTelemetry Span. If passed to a function,
28
+ * then for that function, this is the parent span object
29
+ */
30
+ span: Span;
31
+ /**
32
+ * The current OpenTelemetry tracer object being
33
+ * used.
34
+ */
35
+ tracer: Tracer;
36
+ /**
37
+ * The telemetry headers
38
+ */
39
+ context: TelemetryCarrier;
40
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,74 @@
1
+ import ArvoEvent from './ArvoEvent';
2
+ import { ArvoDataContentType } from './ArvoEvent/schema';
3
+ import { createArvoEvent } from './ArvoEvent/helpers';
4
+ import { CloudEventContext, CloudEventExtension, ArvoEventData, ArvoExtension, OpenTelemetryExtension, CreateArvoEvent } from './ArvoEvent/types';
5
+ import { exceptionToSpan, logToSpan, getTelemetryContext, getTelemetryCarrier, createOtelSpan, OTelNull } from './OpenTelemetry';
6
+ import { TelemetryCarrier, TelemetryContext, TelemetryLogLevel } from './OpenTelemetry/types';
7
+ import { validateURI, cleanString } from './utils';
8
+ /**
9
+ * Collection of Zod schemas for validating various aspects of Arvo events.
10
+ * @property {z.ZodObject} CloudEventContextSchema - Schema for core CloudEvent properties.
11
+ * @property {z.ZodRecord} CloudEventExtensionSchema - Schema for custom CloudEvent extensions.
12
+ * @property {z.ZodRecord} ArvoDataSchema - Schema for Arvo event data payload.
13
+ * @property {z.ZodObject} ArvoExtensionSchema - Schema for Arvo-specific CloudEvent extensions.
14
+ * @property {z.ZodObject} OpenTelemetryExtensionSchema - Schema for OpenTelemetry extensions.
15
+ */
16
+ declare const ArvoEventSchemas: {
17
+ CloudEventContextSchema: import("zod").ZodObject<{
18
+ id: import("zod").ZodString;
19
+ time: import("zod").ZodString;
20
+ source: import("zod").ZodEffects<import("zod").ZodString, string, string>;
21
+ specversion: import("zod").ZodEffects<import("zod").ZodString, "1.0", string>;
22
+ type: import("zod").ZodString;
23
+ subject: import("zod").ZodEffects<import("zod").ZodString, string, string>;
24
+ datacontenttype: import("zod").ZodDefault<import("zod").ZodEffects<import("zod").ZodString, string, string>>;
25
+ dataschema: import("zod").ZodNullable<import("zod").ZodEffects<import("zod").ZodString, string, string>>;
26
+ }, "strip", import("zod").ZodTypeAny, {
27
+ id: string;
28
+ time: string;
29
+ source: string;
30
+ specversion: "1.0";
31
+ type: string;
32
+ subject: string;
33
+ datacontenttype: string;
34
+ dataschema: string | null;
35
+ }, {
36
+ id: string;
37
+ time: string;
38
+ source: string;
39
+ specversion: string;
40
+ type: string;
41
+ subject: string;
42
+ dataschema: string | null;
43
+ datacontenttype?: string | undefined;
44
+ }>;
45
+ CloudEventExtensionSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnion<[import("zod").ZodString, import("zod").ZodBoolean, import("zod").ZodNumber, import("zod").ZodNull]>>;
46
+ ArvoDataSchema: import("zod").ZodEffects<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodAny>, Record<string, any>, Record<string, any>>;
47
+ ArvoExtensionSchema: import("zod").ZodObject<{
48
+ to: import("zod").ZodNullable<import("zod").ZodEffects<import("zod").ZodString, string, string>>;
49
+ accesscontrol: import("zod").ZodNullable<import("zod").ZodString>;
50
+ redirectto: import("zod").ZodNullable<import("zod").ZodEffects<import("zod").ZodString, string, string>>;
51
+ executionunits: import("zod").ZodNullable<import("zod").ZodNumber>;
52
+ }, "strip", import("zod").ZodTypeAny, {
53
+ to: string | null;
54
+ accesscontrol: string | null;
55
+ redirectto: string | null;
56
+ executionunits: number | null;
57
+ }, {
58
+ to: string | null;
59
+ accesscontrol: string | null;
60
+ redirectto: string | null;
61
+ executionunits: number | null;
62
+ }>;
63
+ OpenTelemetryExtensionSchema: import("zod").ZodObject<{
64
+ traceparent: import("zod").ZodNullable<import("zod").ZodString>;
65
+ tracestate: import("zod").ZodNullable<import("zod").ZodString>;
66
+ }, "strip", import("zod").ZodTypeAny, {
67
+ traceparent: string | null;
68
+ tracestate: string | null;
69
+ }, {
70
+ traceparent: string | null;
71
+ tracestate: string | null;
72
+ }>;
73
+ };
74
+ export { ArvoEvent, createArvoEvent, ArvoDataContentType, ArvoEventData, CloudEventExtension, ArvoEventSchemas, CloudEventContext, ArvoExtension, OpenTelemetryExtension, CreateArvoEvent, exceptionToSpan, logToSpan, getTelemetryCarrier, getTelemetryContext, createOtelSpan, TelemetryCarrier, TelemetryContext, TelemetryLogLevel, OTelNull, validateURI, cleanString, };
package/dist/index.js ADDED
@@ -0,0 +1,38 @@
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.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
+ var ArvoEvent_1 = __importDefault(require("./ArvoEvent"));
8
+ exports.ArvoEvent = ArvoEvent_1.default;
9
+ var schema_1 = require("./ArvoEvent/schema");
10
+ Object.defineProperty(exports, "ArvoDataContentType", { enumerable: true, get: function () { return schema_1.ArvoDataContentType; } });
11
+ var helpers_1 = require("./ArvoEvent/helpers");
12
+ Object.defineProperty(exports, "createArvoEvent", { enumerable: true, get: function () { return helpers_1.createArvoEvent; } });
13
+ var OpenTelemetry_1 = require("./OpenTelemetry");
14
+ Object.defineProperty(exports, "exceptionToSpan", { enumerable: true, get: function () { return OpenTelemetry_1.exceptionToSpan; } });
15
+ Object.defineProperty(exports, "logToSpan", { enumerable: true, get: function () { return OpenTelemetry_1.logToSpan; } });
16
+ Object.defineProperty(exports, "getTelemetryContext", { enumerable: true, get: function () { return OpenTelemetry_1.getTelemetryContext; } });
17
+ Object.defineProperty(exports, "getTelemetryCarrier", { enumerable: true, get: function () { return OpenTelemetry_1.getTelemetryCarrier; } });
18
+ Object.defineProperty(exports, "createOtelSpan", { enumerable: true, get: function () { return OpenTelemetry_1.createOtelSpan; } });
19
+ Object.defineProperty(exports, "OTelNull", { enumerable: true, get: function () { return OpenTelemetry_1.OTelNull; } });
20
+ var utils_1 = require("./utils");
21
+ Object.defineProperty(exports, "validateURI", { enumerable: true, get: function () { return utils_1.validateURI; } });
22
+ Object.defineProperty(exports, "cleanString", { enumerable: true, get: function () { return utils_1.cleanString; } });
23
+ /**
24
+ * Collection of Zod schemas for validating various aspects of Arvo events.
25
+ * @property {z.ZodObject} CloudEventContextSchema - Schema for core CloudEvent properties.
26
+ * @property {z.ZodRecord} CloudEventExtensionSchema - Schema for custom CloudEvent extensions.
27
+ * @property {z.ZodRecord} ArvoDataSchema - Schema for Arvo event data payload.
28
+ * @property {z.ZodObject} ArvoExtensionSchema - Schema for Arvo-specific CloudEvent extensions.
29
+ * @property {z.ZodObject} OpenTelemetryExtensionSchema - Schema for OpenTelemetry extensions.
30
+ */
31
+ var ArvoEventSchemas = {
32
+ CloudEventContextSchema: schema_1.CloudEventContextSchema,
33
+ CloudEventExtensionSchema: schema_1.CloudEventExtensionSchema,
34
+ ArvoDataSchema: schema_1.ArvoDataSchema,
35
+ ArvoExtensionSchema: schema_1.ArvoExtensionSchema,
36
+ OpenTelemetryExtensionSchema: schema_1.OpenTelemetryExtensionSchema,
37
+ };
38
+ exports.ArvoEventSchemas = ArvoEventSchemas;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Cleans a string by removing leading/trailing whitespace from each line,
3
+ * removing empty lines, and joining the remaining lines with newline characters.
4
+ *
5
+ * @param s - The input string to be cleaned.
6
+ * @returns A new string with cleaned content.
7
+ *
8
+ * @example
9
+ * const input = " Hello \n World \n\n ";
10
+ * const cleaned = cleanString(input);
11
+ * console.log(cleaned); // Output: "Hello\nWorld"
12
+ */
13
+ export declare function cleanString(s: string): string;
14
+ /**
15
+ * Validates if a given string is a properly encoded URI.
16
+ *
17
+ * This function checks if the input string remains unchanged after being
18
+ * decoded and then re-encoded, which indicates that it's a valid URI.
19
+ *
20
+ * @param value - The string to be validated as a URI.
21
+ * @returns A boolean indicating whether the input is a valid URI (true) or not (false).
22
+ *
23
+ * @example
24
+ * validateURI("https://example.com"); // Returns true
25
+ * validateURI("https://example.com/path with spaces"); // Returns false
26
+ * validateURI("https://example.com/path%20with%20spaces"); // Returns true
27
+ */
28
+ export declare const validateURI: (value: string) => boolean;
29
+ /**
30
+ * Creates an RFC 3339 compliant timestamp string with an optional UTC offset.
31
+ *
32
+ * @param offsetHours - The number of hours to offset from UTC. Positive values
33
+ * represent hours ahead of UTC, negative values represent
34
+ * hours behind UTC. Defaults to 0 (UTC).
35
+ * @returns A string representing the current date and time in RFC 3339 format
36
+ * with the specified UTC offset.
37
+ *
38
+ * @example
39
+ * // Returns current time in UTC
40
+ * createTimestamp();
41
+ *
42
+ * @example
43
+ * // Returns current time with +2 hours offset
44
+ * createTimestamp(2);
45
+ *
46
+ * @example
47
+ * // Returns current time with -5 hours offset
48
+ * createTimestamp(-5);
49
+ */
50
+ export declare const createTimestamp: (offsetHours?: number) => string;
package/dist/utils.js ADDED
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTimestamp = exports.validateURI = void 0;
4
+ exports.cleanString = cleanString;
5
+ /**
6
+ * Cleans a string by removing leading/trailing whitespace from each line,
7
+ * removing empty lines, and joining the remaining lines with newline characters.
8
+ *
9
+ * @param s - The input string to be cleaned.
10
+ * @returns A new string with cleaned content.
11
+ *
12
+ * @example
13
+ * const input = " Hello \n World \n\n ";
14
+ * const cleaned = cleanString(input);
15
+ * console.log(cleaned); // Output: "Hello\nWorld"
16
+ */
17
+ function cleanString(s) {
18
+ return s
19
+ .split('\n')
20
+ .map(function (item) { return item.trim(); })
21
+ .filter(function (item) { return Boolean(item); })
22
+ .join('\n');
23
+ }
24
+ /**
25
+ * Validates if a given string is a properly encoded URI.
26
+ *
27
+ * This function checks if the input string remains unchanged after being
28
+ * decoded and then re-encoded, which indicates that it's a valid URI.
29
+ *
30
+ * @param value - The string to be validated as a URI.
31
+ * @returns A boolean indicating whether the input is a valid URI (true) or not (false).
32
+ *
33
+ * @example
34
+ * validateURI("https://example.com"); // Returns true
35
+ * validateURI("https://example.com/path with spaces"); // Returns false
36
+ * validateURI("https://example.com/path%20with%20spaces"); // Returns true
37
+ */
38
+ var validateURI = function (value) {
39
+ try {
40
+ return value === encodeURI(decodeURI(value));
41
+ }
42
+ catch (_a) {
43
+ return false;
44
+ }
45
+ };
46
+ exports.validateURI = validateURI;
47
+ /**
48
+ * Creates an RFC 3339 compliant timestamp string with an optional UTC offset.
49
+ *
50
+ * @param offsetHours - The number of hours to offset from UTC. Positive values
51
+ * represent hours ahead of UTC, negative values represent
52
+ * hours behind UTC. Defaults to 0 (UTC).
53
+ * @returns A string representing the current date and time in RFC 3339 format
54
+ * with the specified UTC offset.
55
+ *
56
+ * @example
57
+ * // Returns current time in UTC
58
+ * createTimestamp();
59
+ *
60
+ * @example
61
+ * // Returns current time with +2 hours offset
62
+ * createTimestamp(2);
63
+ *
64
+ * @example
65
+ * // Returns current time with -5 hours offset
66
+ * createTimestamp(-5);
67
+ */
68
+ var createTimestamp = function (offsetHours) {
69
+ if (offsetHours === void 0) { offsetHours = 0; }
70
+ var now = new Date();
71
+ var offsetMinutes = offsetHours * 60;
72
+ now.setMinutes(now.getMinutes() - now.getTimezoneOffset() + offsetMinutes);
73
+ return now
74
+ .toISOString()
75
+ .replace('Z', offsetHours >= 0
76
+ ? "+".concat(String(offsetHours).padStart(2, '0'), ":00")
77
+ : "-".concat(String(Math.abs(offsetHours)).padStart(2, '0'), ":00"));
78
+ };
79
+ exports.createTimestamp = createTimestamp;
@@ -0,0 +1,29 @@
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!"
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "arvo-core",
3
+ "version": "0.0.1",
4
+ "description": "This core package contains all the core classes and components of the Arvo Event Driven System",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "build": "tsc",
8
+ "start": "node ./dist/index.js",
9
+ "dev": "ts-node ./src/index.ts",
10
+ "test": "jest --passWithNoTests --runInBand --detectOpenHandles --forceExit",
11
+ "format": "npx prettier --write .",
12
+ "doc": "npx typedoc"
13
+ },
14
+ "keywords": [
15
+ "arvo",
16
+ "event-driven architecture",
17
+ "xorca",
18
+ "core",
19
+ "cloudevent",
20
+ "opentelemetry",
21
+ "orchestrator"
22
+ ],
23
+ "author": "Saad Ahmad <saadkwi12@hotmail.com>",
24
+ "license": "MIT",
25
+ "devDependencies": {
26
+ "@jest/globals": "^29.7.0",
27
+ "@opentelemetry/auto-instrumentations-node": "^0.49.1",
28
+ "@opentelemetry/exporter-metrics-otlp-proto": "^0.52.1",
29
+ "@opentelemetry/exporter-trace-otlp-proto": "^0.52.1",
30
+ "@opentelemetry/resources": "^1.25.1",
31
+ "@opentelemetry/sdk-metrics": "^1.25.1",
32
+ "@opentelemetry/sdk-node": "^0.52.1",
33
+ "@opentelemetry/sdk-trace-node": "^1.25.1",
34
+ "@opentelemetry/semantic-conventions": "^1.25.1",
35
+ "@types/jest": "^29.5.12",
36
+ "@types/node": "^22.5.0",
37
+ "@types/uuid": "^10.0.0",
38
+ "dotenv": "^16.4.5",
39
+ "jest": "^29.7.0",
40
+ "prettier": "^3.3.3",
41
+ "ts-jest": "^29.2.5",
42
+ "ts-node": "^10.9.2",
43
+ "typedoc": "^0.26.6",
44
+ "typedoc-plugin-zod": "^1.2.1",
45
+ "typescript": "^5.5.4"
46
+ },
47
+ "dependencies": {
48
+ "@opentelemetry/api": "^1.9.0",
49
+ "uuid": "^10.0.0",
50
+ "zod": "^3.23.8",
51
+ "zod-to-json-schema": "^3.23.2"
52
+ }
53
+ }