@vladimir-ks/aigile 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,70 @@
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 __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ BaseEntity: () => BaseEntity,
24
+ VERSION: () => VERSION
25
+ });
26
+ module.exports = __toCommonJS(index_exports);
27
+
28
+ // src/entities/base.ts
29
+ var BaseEntity = class {
30
+ id;
31
+ key;
32
+ created_at;
33
+ updated_at;
34
+ metadata;
35
+ constructor(data = {}) {
36
+ this.id = data.id ?? crypto.randomUUID();
37
+ this.key = data.key ?? "";
38
+ this.created_at = data.created_at ?? (/* @__PURE__ */ new Date()).toISOString();
39
+ this.updated_at = data.updated_at ?? (/* @__PURE__ */ new Date()).toISOString();
40
+ this.metadata = data.metadata ?? {};
41
+ }
42
+ /**
43
+ * Update the entity's updated_at timestamp
44
+ */
45
+ touch() {
46
+ this.updated_at = (/* @__PURE__ */ new Date()).toISOString();
47
+ }
48
+ /**
49
+ * Get a custom field value from metadata
50
+ */
51
+ getCustomField(name) {
52
+ return this.metadata[name];
53
+ }
54
+ /**
55
+ * Set a custom field value in metadata
56
+ */
57
+ setCustomField(name, value) {
58
+ this.metadata[name] = value;
59
+ this.touch();
60
+ }
61
+ };
62
+
63
+ // src/index.ts
64
+ var VERSION = "0.1.0";
65
+ // Annotate the CommonJS export names for ESM import in node:
66
+ 0 && (module.exports = {
67
+ BaseEntity,
68
+ VERSION
69
+ });
70
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/entities/base.ts"],"sourcesContent":["/**\n * AIGILE - JIRA-compatible Agile Project Management Library\n *\n * @packageDocumentation\n * @module @vladimir-ks/aigile\n * @author Vladimir K.S.\n */\n\n// Entity exports (to be implemented)\nexport * from './entities/base';\n\n// Database exports (to be implemented)\n// export * from './db/connection';\n\n// Custom fields exports (to be implemented)\n// export * from './fields/loader';\n\n// Workflow exports (to be implemented)\n// export * from './workflows/engine';\n\n// Version\nexport const VERSION = '0.1.0';\n","/**\n * Base Entity Class\n *\n * All AIGILE entities extend this base class which provides\n * common fields and behaviors.\n *\n * @author Vladimir K.S.\n */\n\n/**\n * Common fields present in all AIGILE entities\n */\nexport interface BaseEntityFields {\n /** Unique identifier (UUID) */\n id: string;\n\n /** Human-readable key (e.g., PROJECT-123) */\n key: string;\n\n /** Creation timestamp (ISO 8601) */\n created_at: string;\n\n /** Last update timestamp (ISO 8601) */\n updated_at: string;\n\n /** Custom fields stored as JSON */\n metadata: Record<string, unknown>;\n}\n\n/**\n * Priority levels (JIRA-compatible)\n */\nexport type Priority = 'Highest' | 'High' | 'Medium' | 'Low' | 'Lowest';\n\n/**\n * Story point values (Fibonacci sequence)\n */\nexport type StoryPoints = 1 | 2 | 3 | 5 | 8 | 13 | 21;\n\n/**\n * Base class for all AIGILE entities\n */\nexport abstract class BaseEntity implements BaseEntityFields {\n id: string;\n key: string;\n created_at: string;\n updated_at: string;\n metadata: Record<string, unknown>;\n\n constructor(data: Partial<BaseEntityFields> = {}) {\n this.id = data.id ?? crypto.randomUUID();\n this.key = data.key ?? '';\n this.created_at = data.created_at ?? new Date().toISOString();\n this.updated_at = data.updated_at ?? new Date().toISOString();\n this.metadata = data.metadata ?? {};\n }\n\n /**\n * Update the entity's updated_at timestamp\n */\n touch(): void {\n this.updated_at = new Date().toISOString();\n }\n\n /**\n * Get a custom field value from metadata\n */\n getCustomField<T>(name: string): T | undefined {\n return this.metadata[name] as T | undefined;\n }\n\n /**\n * Set a custom field value in metadata\n */\n setCustomField<T>(name: string, value: T): void {\n this.metadata[name] = value;\n this.touch();\n }\n\n /**\n * Convert entity to plain object for serialization\n */\n abstract toJSON(): Record<string, unknown>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC0CO,IAAe,aAAf,MAAsD;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,OAAkC,CAAC,GAAG;AAChD,SAAK,KAAK,KAAK,MAAM,OAAO,WAAW;AACvC,SAAK,MAAM,KAAK,OAAO;AACvB,SAAK,aAAa,KAAK,eAAc,oBAAI,KAAK,GAAE,YAAY;AAC5D,SAAK,aAAa,KAAK,eAAc,oBAAI,KAAK,GAAE,YAAY;AAC5D,SAAK,WAAW,KAAK,YAAY,CAAC;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,cAAa,oBAAI,KAAK,GAAE,YAAY;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,eAAkB,MAA6B;AAC7C,WAAO,KAAK,SAAS,IAAI;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,eAAkB,MAAc,OAAgB;AAC9C,SAAK,SAAS,IAAI,IAAI;AACtB,SAAK,MAAM;AAAA,EACb;AAMF;;;AD9DO,IAAM,UAAU;","names":[]}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Base Entity Class
3
+ *
4
+ * All AIGILE entities extend this base class which provides
5
+ * common fields and behaviors.
6
+ *
7
+ * @author Vladimir K.S.
8
+ */
9
+ /**
10
+ * Common fields present in all AIGILE entities
11
+ */
12
+ interface BaseEntityFields {
13
+ /** Unique identifier (UUID) */
14
+ id: string;
15
+ /** Human-readable key (e.g., PROJECT-123) */
16
+ key: string;
17
+ /** Creation timestamp (ISO 8601) */
18
+ created_at: string;
19
+ /** Last update timestamp (ISO 8601) */
20
+ updated_at: string;
21
+ /** Custom fields stored as JSON */
22
+ metadata: Record<string, unknown>;
23
+ }
24
+ /**
25
+ * Priority levels (JIRA-compatible)
26
+ */
27
+ type Priority = 'Highest' | 'High' | 'Medium' | 'Low' | 'Lowest';
28
+ /**
29
+ * Story point values (Fibonacci sequence)
30
+ */
31
+ type StoryPoints = 1 | 2 | 3 | 5 | 8 | 13 | 21;
32
+ /**
33
+ * Base class for all AIGILE entities
34
+ */
35
+ declare abstract class BaseEntity implements BaseEntityFields {
36
+ id: string;
37
+ key: string;
38
+ created_at: string;
39
+ updated_at: string;
40
+ metadata: Record<string, unknown>;
41
+ constructor(data?: Partial<BaseEntityFields>);
42
+ /**
43
+ * Update the entity's updated_at timestamp
44
+ */
45
+ touch(): void;
46
+ /**
47
+ * Get a custom field value from metadata
48
+ */
49
+ getCustomField<T>(name: string): T | undefined;
50
+ /**
51
+ * Set a custom field value in metadata
52
+ */
53
+ setCustomField<T>(name: string, value: T): void;
54
+ /**
55
+ * Convert entity to plain object for serialization
56
+ */
57
+ abstract toJSON(): Record<string, unknown>;
58
+ }
59
+
60
+ /**
61
+ * AIGILE - JIRA-compatible Agile Project Management Library
62
+ *
63
+ * @packageDocumentation
64
+ * @module @vladimir-ks/aigile
65
+ * @author Vladimir K.S.
66
+ */
67
+
68
+ declare const VERSION = "0.1.0";
69
+
70
+ export { BaseEntity, type BaseEntityFields, type Priority, type StoryPoints, VERSION };
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Base Entity Class
3
+ *
4
+ * All AIGILE entities extend this base class which provides
5
+ * common fields and behaviors.
6
+ *
7
+ * @author Vladimir K.S.
8
+ */
9
+ /**
10
+ * Common fields present in all AIGILE entities
11
+ */
12
+ interface BaseEntityFields {
13
+ /** Unique identifier (UUID) */
14
+ id: string;
15
+ /** Human-readable key (e.g., PROJECT-123) */
16
+ key: string;
17
+ /** Creation timestamp (ISO 8601) */
18
+ created_at: string;
19
+ /** Last update timestamp (ISO 8601) */
20
+ updated_at: string;
21
+ /** Custom fields stored as JSON */
22
+ metadata: Record<string, unknown>;
23
+ }
24
+ /**
25
+ * Priority levels (JIRA-compatible)
26
+ */
27
+ type Priority = 'Highest' | 'High' | 'Medium' | 'Low' | 'Lowest';
28
+ /**
29
+ * Story point values (Fibonacci sequence)
30
+ */
31
+ type StoryPoints = 1 | 2 | 3 | 5 | 8 | 13 | 21;
32
+ /**
33
+ * Base class for all AIGILE entities
34
+ */
35
+ declare abstract class BaseEntity implements BaseEntityFields {
36
+ id: string;
37
+ key: string;
38
+ created_at: string;
39
+ updated_at: string;
40
+ metadata: Record<string, unknown>;
41
+ constructor(data?: Partial<BaseEntityFields>);
42
+ /**
43
+ * Update the entity's updated_at timestamp
44
+ */
45
+ touch(): void;
46
+ /**
47
+ * Get a custom field value from metadata
48
+ */
49
+ getCustomField<T>(name: string): T | undefined;
50
+ /**
51
+ * Set a custom field value in metadata
52
+ */
53
+ setCustomField<T>(name: string, value: T): void;
54
+ /**
55
+ * Convert entity to plain object for serialization
56
+ */
57
+ abstract toJSON(): Record<string, unknown>;
58
+ }
59
+
60
+ /**
61
+ * AIGILE - JIRA-compatible Agile Project Management Library
62
+ *
63
+ * @packageDocumentation
64
+ * @module @vladimir-ks/aigile
65
+ * @author Vladimir K.S.
66
+ */
67
+
68
+ declare const VERSION = "0.1.0";
69
+
70
+ export { BaseEntity, type BaseEntityFields, type Priority, type StoryPoints, VERSION };
package/dist/index.js ADDED
@@ -0,0 +1,42 @@
1
+ // src/entities/base.ts
2
+ var BaseEntity = class {
3
+ id;
4
+ key;
5
+ created_at;
6
+ updated_at;
7
+ metadata;
8
+ constructor(data = {}) {
9
+ this.id = data.id ?? crypto.randomUUID();
10
+ this.key = data.key ?? "";
11
+ this.created_at = data.created_at ?? (/* @__PURE__ */ new Date()).toISOString();
12
+ this.updated_at = data.updated_at ?? (/* @__PURE__ */ new Date()).toISOString();
13
+ this.metadata = data.metadata ?? {};
14
+ }
15
+ /**
16
+ * Update the entity's updated_at timestamp
17
+ */
18
+ touch() {
19
+ this.updated_at = (/* @__PURE__ */ new Date()).toISOString();
20
+ }
21
+ /**
22
+ * Get a custom field value from metadata
23
+ */
24
+ getCustomField(name) {
25
+ return this.metadata[name];
26
+ }
27
+ /**
28
+ * Set a custom field value in metadata
29
+ */
30
+ setCustomField(name, value) {
31
+ this.metadata[name] = value;
32
+ this.touch();
33
+ }
34
+ };
35
+
36
+ // src/index.ts
37
+ var VERSION = "0.1.0";
38
+ export {
39
+ BaseEntity,
40
+ VERSION
41
+ };
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/entities/base.ts","../src/index.ts"],"sourcesContent":["/**\n * Base Entity Class\n *\n * All AIGILE entities extend this base class which provides\n * common fields and behaviors.\n *\n * @author Vladimir K.S.\n */\n\n/**\n * Common fields present in all AIGILE entities\n */\nexport interface BaseEntityFields {\n /** Unique identifier (UUID) */\n id: string;\n\n /** Human-readable key (e.g., PROJECT-123) */\n key: string;\n\n /** Creation timestamp (ISO 8601) */\n created_at: string;\n\n /** Last update timestamp (ISO 8601) */\n updated_at: string;\n\n /** Custom fields stored as JSON */\n metadata: Record<string, unknown>;\n}\n\n/**\n * Priority levels (JIRA-compatible)\n */\nexport type Priority = 'Highest' | 'High' | 'Medium' | 'Low' | 'Lowest';\n\n/**\n * Story point values (Fibonacci sequence)\n */\nexport type StoryPoints = 1 | 2 | 3 | 5 | 8 | 13 | 21;\n\n/**\n * Base class for all AIGILE entities\n */\nexport abstract class BaseEntity implements BaseEntityFields {\n id: string;\n key: string;\n created_at: string;\n updated_at: string;\n metadata: Record<string, unknown>;\n\n constructor(data: Partial<BaseEntityFields> = {}) {\n this.id = data.id ?? crypto.randomUUID();\n this.key = data.key ?? '';\n this.created_at = data.created_at ?? new Date().toISOString();\n this.updated_at = data.updated_at ?? new Date().toISOString();\n this.metadata = data.metadata ?? {};\n }\n\n /**\n * Update the entity's updated_at timestamp\n */\n touch(): void {\n this.updated_at = new Date().toISOString();\n }\n\n /**\n * Get a custom field value from metadata\n */\n getCustomField<T>(name: string): T | undefined {\n return this.metadata[name] as T | undefined;\n }\n\n /**\n * Set a custom field value in metadata\n */\n setCustomField<T>(name: string, value: T): void {\n this.metadata[name] = value;\n this.touch();\n }\n\n /**\n * Convert entity to plain object for serialization\n */\n abstract toJSON(): Record<string, unknown>;\n}\n","/**\n * AIGILE - JIRA-compatible Agile Project Management Library\n *\n * @packageDocumentation\n * @module @vladimir-ks/aigile\n * @author Vladimir K.S.\n */\n\n// Entity exports (to be implemented)\nexport * from './entities/base';\n\n// Database exports (to be implemented)\n// export * from './db/connection';\n\n// Custom fields exports (to be implemented)\n// export * from './fields/loader';\n\n// Workflow exports (to be implemented)\n// export * from './workflows/engine';\n\n// Version\nexport const VERSION = '0.1.0';\n"],"mappings":";AA0CO,IAAe,aAAf,MAAsD;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA,YAAY,OAAkC,CAAC,GAAG;AAChD,SAAK,KAAK,KAAK,MAAM,OAAO,WAAW;AACvC,SAAK,MAAM,KAAK,OAAO;AACvB,SAAK,aAAa,KAAK,eAAc,oBAAI,KAAK,GAAE,YAAY;AAC5D,SAAK,aAAa,KAAK,eAAc,oBAAI,KAAK,GAAE,YAAY;AAC5D,SAAK,WAAW,KAAK,YAAY,CAAC;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,cAAa,oBAAI,KAAK,GAAE,YAAY;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,eAAkB,MAA6B;AAC7C,WAAO,KAAK,SAAS,IAAI;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,eAAkB,MAAc,OAAgB;AAC9C,SAAK,SAAS,IAAI,IAAI;AACtB,SAAK,MAAM;AAAA,EACb;AAMF;;;AC9DO,IAAM,UAAU;","names":[]}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@vladimir-ks/aigile",
3
+ "version": "0.1.0",
4
+ "description": "JIRA-compatible Agile project management CLI for AI-assisted development",
5
+ "keywords": [
6
+ "aigile",
7
+ "agile",
8
+ "jira",
9
+ "project-management",
10
+ "cli",
11
+ "typescript",
12
+ "claude-code",
13
+ "ai-development"
14
+ ],
15
+ "author": {
16
+ "name": "Vladimir K.S.",
17
+ "email": "vlad@vladks.com",
18
+ "url": "https://github.com/vladimir-ks"
19
+ },
20
+ "license": "MIT",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/vladimir-ks/aigile.git"
24
+ },
25
+ "type": "module",
26
+ "main": "./dist/index.js",
27
+ "module": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "bin": {
30
+ "aigile": "./dist/bin/aigile.js"
31
+ },
32
+ "exports": {
33
+ ".": {
34
+ "types": "./dist/index.d.ts",
35
+ "import": "./dist/index.js",
36
+ "require": "./dist/index.cjs"
37
+ }
38
+ },
39
+ "files": [
40
+ "dist",
41
+ "types",
42
+ "LICENSE"
43
+ ],
44
+ "engines": {
45
+ "node": ">=18.0.0"
46
+ },
47
+ "scripts": {
48
+ "build": "tsup",
49
+ "dev": "tsup --watch",
50
+ "test": "vitest run --passWithNoTests",
51
+ "test:watch": "vitest",
52
+ "test:coverage": "vitest run --coverage",
53
+ "lint": "eslint --ext .ts,.js src/",
54
+ "lint:fix": "eslint --ext .ts,.js src/ --fix",
55
+ "typecheck": "tsc --noEmit",
56
+ "clean": "rm -rf dist coverage"
57
+ },
58
+ "dependencies": {
59
+ "chalk": "^5.3.0",
60
+ "chokidar": "^3.6.0",
61
+ "cli-table3": "^0.6.5",
62
+ "commander": "^12.1.0",
63
+ "sql.js": "^1.12.0",
64
+ "yaml": "^2.6.1"
65
+ },
66
+ "devDependencies": {
67
+ "@types/node": "^20.11.0",
68
+ "tsup": "^8.0.1",
69
+ "typescript": "^5.3.0",
70
+ "vitest": "^1.2.0"
71
+ }
72
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Type declarations for sql.js
3
+ * https://github.com/sql-js/sql.js
4
+ */
5
+
6
+ declare module 'sql.js' {
7
+ export interface SqlJsStatic {
8
+ Database: typeof Database;
9
+ }
10
+
11
+ export interface Database {
12
+ run(sql: string, params?: unknown[]): void;
13
+ exec(sql: string): QueryExecResult[];
14
+ prepare(sql: string): Statement;
15
+ getRowsModified(): number;
16
+ close(): void;
17
+ export(): Uint8Array;
18
+ }
19
+
20
+ export interface Statement {
21
+ bind(params?: unknown[]): boolean;
22
+ step(): boolean;
23
+ getAsObject(params?: Record<string, unknown>): Record<string, unknown>;
24
+ reset(): void;
25
+ free(): void;
26
+ get(params?: unknown[]): unknown[];
27
+ }
28
+
29
+ export interface QueryExecResult {
30
+ columns: string[];
31
+ values: unknown[][];
32
+ }
33
+
34
+ export interface SqlJsConfig {
35
+ locateFile?: (filename: string) => string;
36
+ }
37
+
38
+ export default function initSqlJs(config?: SqlJsConfig): Promise<SqlJsStatic>;
39
+ }