@loopstack/github-oauth-example 0.1.1 → 0.2.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.
Files changed (29) hide show
  1. package/dist/tools/authenticate-github-task.tool.d.ts +9 -8
  2. package/dist/tools/authenticate-github-task.tool.d.ts.map +1 -1
  3. package/dist/tools/authenticate-github-task.tool.js +30 -62
  4. package/dist/tools/authenticate-github-task.tool.js.map +1 -1
  5. package/dist/workflows/github-agent.ui.yaml +16 -0
  6. package/dist/workflows/github-agent.workflow.d.ts +14 -13
  7. package/dist/workflows/github-agent.workflow.d.ts.map +1 -1
  8. package/dist/workflows/github-agent.workflow.js +155 -71
  9. package/dist/workflows/github-agent.workflow.js.map +1 -1
  10. package/dist/workflows/github-repos-overview.ui.yaml +17 -0
  11. package/dist/workflows/github-repos-overview.workflow.d.ts +77 -87
  12. package/dist/workflows/github-repos-overview.workflow.d.ts.map +1 -1
  13. package/dist/workflows/github-repos-overview.workflow.js +177 -228
  14. package/dist/workflows/github-repos-overview.workflow.js.map +1 -1
  15. package/dist/workflows/templates/repoOverview.md +81 -0
  16. package/dist/workflows/templates/systemMessage.md +23 -0
  17. package/package.json +7 -7
  18. package/src/tools/authenticate-github-task.tool.ts +34 -82
  19. package/src/workflows/__tests__/github-repos-overview-workflow.spec.ts +105 -249
  20. package/src/workflows/github-agent.ui.yaml +16 -0
  21. package/src/workflows/github-agent.workflow.ts +109 -27
  22. package/src/workflows/github-repos-overview.ui.yaml +17 -0
  23. package/src/workflows/github-repos-overview.workflow.ts +257 -215
  24. package/src/workflows/templates/repoOverview.md +81 -0
  25. package/src/workflows/templates/systemMessage.md +23 -0
  26. package/dist/workflows/github-agent.workflow.yaml +0 -154
  27. package/dist/workflows/github-repos-overview.workflow.yaml +0 -249
  28. package/src/workflows/github-agent.workflow.yaml +0 -154
  29. package/src/workflows/github-repos-overview.workflow.yaml +0 -249
@@ -1,102 +1,92 @@
1
- import { WorkflowInterface } from '@loopstack/common';
1
+ import { BaseWorkflow } from '@loopstack/common';
2
2
  import { OAuthWorkflow } from '@loopstack/oauth-module';
3
- export declare class GitHubReposOverviewWorkflow implements WorkflowInterface {
4
- private task;
5
- private createDocument;
6
- private createChatMessage;
3
+ export declare class GitHubReposOverviewWorkflow extends BaseWorkflow<{
4
+ owner: string;
5
+ repo: string;
6
+ }> {
7
7
  private gitHubGetAuthenticatedUser;
8
8
  private gitHubListUserOrgs;
9
- private gitHubListRepos;
10
9
  private gitHubGetRepo;
11
- private gitHubCreateRepo;
12
10
  private gitHubListBranches;
13
11
  private gitHubListIssues;
14
- private gitHubGetIssue;
15
- private gitHubCreateIssue;
16
- private gitHubCreateIssueComment;
17
12
  private gitHubListPullRequests;
18
- private gitHubGetPullRequest;
19
- private gitHubCreatePullRequest;
20
- private gitHubMergePullRequest;
21
- private gitHubListPrReviews;
22
- private gitHubGetFileContent;
23
- private gitHubCreateOrUpdateFile;
24
13
  private gitHubListDirectory;
25
- private gitHubGetCommit;
26
14
  private gitHubListWorkflowRuns;
27
- private gitHubTriggerWorkflow;
28
- private gitHubGetWorkflowRun;
29
15
  private gitHubSearchCode;
30
- private gitHubSearchRepos;
31
- private gitHubSearchIssues;
32
- private linkDocument;
33
- private markdown;
34
16
  oAuth: OAuthWorkflow;
35
- args: {
36
- owner: string;
37
- repo: string;
17
+ owner: string;
18
+ repo: string;
19
+ requiresAuthentication?: boolean;
20
+ user?: {
21
+ login: string;
22
+ name: string | null;
23
+ htmlUrl: string;
24
+ publicRepos: number;
38
25
  };
39
- context: any;
40
- runtime: any;
41
- state: {
42
- requiresAuthentication?: boolean;
43
- user?: {
44
- login: string;
45
- name: string | null;
46
- htmlUrl: string;
47
- publicRepos: number;
48
- };
49
- orgs?: Array<{
50
- login: string;
51
- description: string | null;
52
- }>;
53
- repo?: {
54
- fullName: string;
55
- description: string | null;
56
- language: string | null;
57
- stars: number;
58
- forks: number;
59
- openIssues: number;
60
- defaultBranch: string;
61
- htmlUrl: string;
62
- };
63
- branches?: Array<{
64
- name: string;
65
- protected: boolean;
66
- }>;
67
- issues?: Array<{
68
- number: number;
69
- title: string;
70
- state: string;
71
- user: string;
72
- htmlUrl: string;
73
- }>;
74
- pullRequests?: Array<{
75
- number: number;
76
- title: string;
77
- state: string;
78
- user: string;
79
- draft: boolean;
80
- htmlUrl: string;
81
- }>;
82
- directoryEntries?: Array<{
83
- name: string;
84
- type: string;
85
- path: string;
86
- }>;
87
- workflowRuns?: Array<{
88
- id: number;
89
- name: string;
90
- status: string;
91
- conclusion: string | null;
92
- htmlUrl: string;
93
- }>;
94
- searchResults?: Array<{
95
- name: string;
96
- path: string;
97
- repository: string;
98
- }>;
26
+ orgs?: Array<{
27
+ login: string;
28
+ description: string | null;
29
+ }>;
30
+ repoDetails?: {
31
+ fullName: string;
32
+ description: string | null;
33
+ language: string | null;
34
+ stars: number;
35
+ forks: number;
36
+ openIssues: number;
37
+ defaultBranch: string;
38
+ htmlUrl: string;
99
39
  };
100
- searchQuery(): string;
40
+ branches?: Array<{
41
+ name: string;
42
+ protected: boolean;
43
+ }>;
44
+ issues?: Array<{
45
+ number: number;
46
+ title: string;
47
+ state: string;
48
+ user: string;
49
+ htmlUrl: string;
50
+ }>;
51
+ pullRequests?: Array<{
52
+ number: number;
53
+ title: string;
54
+ state: string;
55
+ user: string;
56
+ draft: boolean;
57
+ htmlUrl: string;
58
+ }>;
59
+ directoryEntries?: Array<{
60
+ name: string;
61
+ type: string;
62
+ path: string;
63
+ }>;
64
+ workflowRuns?: Array<{
65
+ id: number;
66
+ name: string;
67
+ status: string;
68
+ conclusion: string | null;
69
+ htmlUrl: string;
70
+ }>;
71
+ searchResults?: Array<{
72
+ name: string;
73
+ path: string;
74
+ repository: string;
75
+ }>;
76
+ fetchUser(args: {
77
+ owner: string;
78
+ repo: string;
79
+ }): Promise<void>;
80
+ authRequired(): Promise<void>;
81
+ needsAuth(): boolean;
82
+ authCompleted(payload: {
83
+ workflowId: string;
84
+ }): Promise<void>;
85
+ fetchOrgs(): Promise<void>;
86
+ fetchRepoDetails(): Promise<void>;
87
+ fetchIssuesPrs(): Promise<void>;
88
+ fetchContentActions(): Promise<void>;
89
+ fetchSearch(): Promise<void>;
90
+ displayResults(): Promise<void>;
101
91
  }
102
92
  //# sourceMappingURL=github-repos-overview.workflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"github-repos-overview.workflow.d.ts","sourceRoot":"","sources":["../../src/workflows/github-repos-overview.workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github-repos-overview.workflow.d.ts","sourceRoot":"","sources":["../../src/workflows/github-repos-overview.workflow.ts"],"names":[],"mappings":"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"}
@@ -10,291 +10,240 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.GitHubReposOverviewWorkflow = void 0;
13
- const common_1 = require("@nestjs/common");
14
13
  const zod_1 = require("zod");
15
- const common_2 = require("@loopstack/common");
14
+ const common_1 = require("@loopstack/common");
16
15
  const core_1 = require("@loopstack/core");
17
- const create_chat_message_tool_1 = require("@loopstack/create-chat-message-tool");
18
16
  const github_module_1 = require("@loopstack/github-module");
19
17
  const oauth_module_1 = require("@loopstack/oauth-module");
20
- let GitHubReposOverviewWorkflow = class GitHubReposOverviewWorkflow {
21
- task;
22
- createDocument;
23
- createChatMessage;
18
+ let GitHubReposOverviewWorkflow = class GitHubReposOverviewWorkflow extends common_1.BaseWorkflow {
24
19
  gitHubGetAuthenticatedUser;
25
20
  gitHubListUserOrgs;
26
- gitHubListRepos;
27
21
  gitHubGetRepo;
28
- gitHubCreateRepo;
29
22
  gitHubListBranches;
30
23
  gitHubListIssues;
31
- gitHubGetIssue;
32
- gitHubCreateIssue;
33
- gitHubCreateIssueComment;
34
24
  gitHubListPullRequests;
35
- gitHubGetPullRequest;
36
- gitHubCreatePullRequest;
37
- gitHubMergePullRequest;
38
- gitHubListPrReviews;
39
- gitHubGetFileContent;
40
- gitHubCreateOrUpdateFile;
41
25
  gitHubListDirectory;
42
- gitHubGetCommit;
43
26
  gitHubListWorkflowRuns;
44
- gitHubTriggerWorkflow;
45
- gitHubGetWorkflowRun;
46
27
  gitHubSearchCode;
47
- gitHubSearchRepos;
48
- gitHubSearchIssues;
49
- linkDocument;
50
- markdown;
51
28
  oAuth;
52
- args;
53
- context;
54
- runtime;
55
- state;
56
- searchQuery() {
57
- return `repo:${this.args.owner}/${this.args.repo}`;
29
+ owner;
30
+ repo;
31
+ requiresAuthentication;
32
+ user;
33
+ orgs;
34
+ repoDetails;
35
+ branches;
36
+ issues;
37
+ pullRequests;
38
+ directoryEntries;
39
+ workflowRuns;
40
+ searchResults;
41
+ async fetchUser(args) {
42
+ this.owner = args.owner;
43
+ this.repo = args.repo;
44
+ const result = await this.gitHubGetAuthenticatedUser.call({});
45
+ this.requiresAuthentication = result.data.error === 'unauthorized';
46
+ this.user = result.data.user;
47
+ }
48
+ async authRequired() {
49
+ const result = await this.oAuth.run({ provider: 'github', scopes: ['repo', 'read:org', 'workflow'] }, { alias: 'oAuth', callback: { transition: 'authCompleted' } });
50
+ await this.repository.save(core_1.LinkDocument, {
51
+ label: 'GitHub authentication required',
52
+ workflowId: result.workflowId,
53
+ embed: true,
54
+ expanded: true,
55
+ }, { id: `link_${result.workflowId}` });
56
+ }
57
+ needsAuth() {
58
+ return !!this.requiresAuthentication;
59
+ }
60
+ async authCompleted(payload) {
61
+ await this.repository.save(core_1.LinkDocument, {
62
+ status: 'success',
63
+ label: 'GitHub authentication completed',
64
+ workflowId: payload.workflowId,
65
+ embed: true,
66
+ expanded: false,
67
+ }, { id: `link_${payload.workflowId}` });
68
+ }
69
+ async fetchOrgs() {
70
+ const result = await this.gitHubListUserOrgs.call({ perPage: 10 });
71
+ this.orgs = result.data.orgs;
72
+ }
73
+ async fetchRepoDetails() {
74
+ const repoResult = await this.gitHubGetRepo.call({
75
+ owner: this.owner,
76
+ repo: this.repo,
77
+ });
78
+ this.repoDetails = repoResult.data.repo;
79
+ const branchesResult = await this.gitHubListBranches.call({
80
+ owner: this.owner,
81
+ repo: this.repo,
82
+ });
83
+ this.branches = branchesResult.data.branches;
84
+ }
85
+ async fetchIssuesPrs() {
86
+ const issuesResult = await this.gitHubListIssues.call({
87
+ owner: this.owner,
88
+ repo: this.repo,
89
+ state: 'open',
90
+ perPage: 10,
91
+ });
92
+ this.issues = issuesResult.data.issues;
93
+ const prsResult = await this.gitHubListPullRequests.call({
94
+ owner: this.owner,
95
+ repo: this.repo,
96
+ state: 'open',
97
+ perPage: 10,
98
+ });
99
+ this.pullRequests = prsResult.data.pullRequests;
100
+ }
101
+ async fetchContentActions() {
102
+ const dirResult = await this.gitHubListDirectory.call({
103
+ owner: this.owner,
104
+ repo: this.repo,
105
+ });
106
+ this.directoryEntries = dirResult.data.entries;
107
+ const runsResult = await this.gitHubListWorkflowRuns.call({
108
+ owner: this.owner,
109
+ repo: this.repo,
110
+ perPage: 5,
111
+ });
112
+ this.workflowRuns = runsResult.data.runs;
113
+ }
114
+ async fetchSearch() {
115
+ const result = await this.gitHubSearchCode.call({
116
+ query: `repo:${this.owner}/${this.repo}`,
117
+ perPage: 5,
118
+ });
119
+ this.searchResults = result.data.results;
120
+ }
121
+ async displayResults() {
122
+ await this.repository.save(core_1.MarkdownDocument, {
123
+ markdown: this.render(__dirname + '/templates/repoOverview.md', {
124
+ user: this.user,
125
+ orgs: this.orgs,
126
+ repo: this.repoDetails,
127
+ branches: this.branches,
128
+ issues: this.issues,
129
+ pullRequests: this.pullRequests,
130
+ directoryEntries: this.directoryEntries,
131
+ workflowRuns: this.workflowRuns,
132
+ searchResults: this.searchResults,
133
+ }),
134
+ });
58
135
  }
59
136
  };
60
137
  exports.GitHubReposOverviewWorkflow = GitHubReposOverviewWorkflow;
61
138
  __decorate([
62
- (0, common_2.InjectTool)(),
63
- __metadata("design:type", core_1.Task)
64
- ], GitHubReposOverviewWorkflow.prototype, "task", void 0);
65
- __decorate([
66
- (0, common_2.InjectTool)(),
67
- __metadata("design:type", core_1.CreateDocument)
68
- ], GitHubReposOverviewWorkflow.prototype, "createDocument", void 0);
69
- __decorate([
70
- (0, common_2.InjectTool)(),
71
- __metadata("design:type", create_chat_message_tool_1.CreateChatMessage)
72
- ], GitHubReposOverviewWorkflow.prototype, "createChatMessage", void 0);
73
- __decorate([
74
- (0, common_2.InjectTool)(),
139
+ (0, common_1.InjectTool)(),
75
140
  __metadata("design:type", github_module_1.GitHubGetAuthenticatedUserTool)
76
141
  ], GitHubReposOverviewWorkflow.prototype, "gitHubGetAuthenticatedUser", void 0);
77
142
  __decorate([
78
- (0, common_2.InjectTool)(),
143
+ (0, common_1.InjectTool)(),
79
144
  __metadata("design:type", github_module_1.GitHubListUserOrgsTool)
80
145
  ], GitHubReposOverviewWorkflow.prototype, "gitHubListUserOrgs", void 0);
81
146
  __decorate([
82
- (0, common_2.InjectTool)(),
83
- __metadata("design:type", github_module_1.GitHubListReposTool)
84
- ], GitHubReposOverviewWorkflow.prototype, "gitHubListRepos", void 0);
85
- __decorate([
86
- (0, common_2.InjectTool)(),
147
+ (0, common_1.InjectTool)(),
87
148
  __metadata("design:type", github_module_1.GitHubGetRepoTool)
88
149
  ], GitHubReposOverviewWorkflow.prototype, "gitHubGetRepo", void 0);
89
150
  __decorate([
90
- (0, common_2.InjectTool)(),
91
- __metadata("design:type", github_module_1.GitHubCreateRepoTool)
92
- ], GitHubReposOverviewWorkflow.prototype, "gitHubCreateRepo", void 0);
93
- __decorate([
94
- (0, common_2.InjectTool)(),
151
+ (0, common_1.InjectTool)(),
95
152
  __metadata("design:type", github_module_1.GitHubListBranchesTool)
96
153
  ], GitHubReposOverviewWorkflow.prototype, "gitHubListBranches", void 0);
97
154
  __decorate([
98
- (0, common_2.InjectTool)(),
155
+ (0, common_1.InjectTool)(),
99
156
  __metadata("design:type", github_module_1.GitHubListIssuesTool)
100
157
  ], GitHubReposOverviewWorkflow.prototype, "gitHubListIssues", void 0);
101
158
  __decorate([
102
- (0, common_2.InjectTool)(),
103
- __metadata("design:type", github_module_1.GitHubGetIssueTool)
104
- ], GitHubReposOverviewWorkflow.prototype, "gitHubGetIssue", void 0);
105
- __decorate([
106
- (0, common_2.InjectTool)(),
107
- __metadata("design:type", github_module_1.GitHubCreateIssueTool)
108
- ], GitHubReposOverviewWorkflow.prototype, "gitHubCreateIssue", void 0);
109
- __decorate([
110
- (0, common_2.InjectTool)(),
111
- __metadata("design:type", github_module_1.GitHubCreateIssueCommentTool)
112
- ], GitHubReposOverviewWorkflow.prototype, "gitHubCreateIssueComment", void 0);
113
- __decorate([
114
- (0, common_2.InjectTool)(),
159
+ (0, common_1.InjectTool)(),
115
160
  __metadata("design:type", github_module_1.GitHubListPullRequestsTool)
116
161
  ], GitHubReposOverviewWorkflow.prototype, "gitHubListPullRequests", void 0);
117
162
  __decorate([
118
- (0, common_2.InjectTool)(),
119
- __metadata("design:type", github_module_1.GitHubGetPullRequestTool)
120
- ], GitHubReposOverviewWorkflow.prototype, "gitHubGetPullRequest", void 0);
121
- __decorate([
122
- (0, common_2.InjectTool)(),
123
- __metadata("design:type", github_module_1.GitHubCreatePullRequestTool)
124
- ], GitHubReposOverviewWorkflow.prototype, "gitHubCreatePullRequest", void 0);
125
- __decorate([
126
- (0, common_2.InjectTool)(),
127
- __metadata("design:type", github_module_1.GitHubMergePullRequestTool)
128
- ], GitHubReposOverviewWorkflow.prototype, "gitHubMergePullRequest", void 0);
129
- __decorate([
130
- (0, common_2.InjectTool)(),
131
- __metadata("design:type", github_module_1.GitHubListPrReviewsTool)
132
- ], GitHubReposOverviewWorkflow.prototype, "gitHubListPrReviews", void 0);
133
- __decorate([
134
- (0, common_2.InjectTool)(),
135
- __metadata("design:type", github_module_1.GitHubGetFileContentTool)
136
- ], GitHubReposOverviewWorkflow.prototype, "gitHubGetFileContent", void 0);
137
- __decorate([
138
- (0, common_2.InjectTool)(),
139
- __metadata("design:type", github_module_1.GitHubCreateOrUpdateFileTool)
140
- ], GitHubReposOverviewWorkflow.prototype, "gitHubCreateOrUpdateFile", void 0);
141
- __decorate([
142
- (0, common_2.InjectTool)(),
163
+ (0, common_1.InjectTool)(),
143
164
  __metadata("design:type", github_module_1.GitHubListDirectoryTool)
144
165
  ], GitHubReposOverviewWorkflow.prototype, "gitHubListDirectory", void 0);
145
166
  __decorate([
146
- (0, common_2.InjectTool)(),
147
- __metadata("design:type", github_module_1.GitHubGetCommitTool)
148
- ], GitHubReposOverviewWorkflow.prototype, "gitHubGetCommit", void 0);
149
- __decorate([
150
- (0, common_2.InjectTool)(),
167
+ (0, common_1.InjectTool)(),
151
168
  __metadata("design:type", github_module_1.GitHubListWorkflowRunsTool)
152
169
  ], GitHubReposOverviewWorkflow.prototype, "gitHubListWorkflowRuns", void 0);
153
170
  __decorate([
154
- (0, common_2.InjectTool)(),
155
- __metadata("design:type", github_module_1.GitHubTriggerWorkflowTool)
156
- ], GitHubReposOverviewWorkflow.prototype, "gitHubTriggerWorkflow", void 0);
157
- __decorate([
158
- (0, common_2.InjectTool)(),
159
- __metadata("design:type", github_module_1.GitHubGetWorkflowRunTool)
160
- ], GitHubReposOverviewWorkflow.prototype, "gitHubGetWorkflowRun", void 0);
161
- __decorate([
162
- (0, common_2.InjectTool)(),
171
+ (0, common_1.InjectTool)(),
163
172
  __metadata("design:type", github_module_1.GitHubSearchCodeTool)
164
173
  ], GitHubReposOverviewWorkflow.prototype, "gitHubSearchCode", void 0);
165
174
  __decorate([
166
- (0, common_2.InjectTool)(),
167
- __metadata("design:type", github_module_1.GitHubSearchReposTool)
168
- ], GitHubReposOverviewWorkflow.prototype, "gitHubSearchRepos", void 0);
175
+ (0, common_1.InjectWorkflow)(),
176
+ __metadata("design:type", oauth_module_1.OAuthWorkflow)
177
+ ], GitHubReposOverviewWorkflow.prototype, "oAuth", void 0);
169
178
  __decorate([
170
- (0, common_2.InjectTool)(),
171
- __metadata("design:type", github_module_1.GitHubSearchIssuesTool)
172
- ], GitHubReposOverviewWorkflow.prototype, "gitHubSearchIssues", void 0);
179
+ (0, common_1.Initial)({ to: 'user_fetched' }),
180
+ __metadata("design:type", Function),
181
+ __metadata("design:paramtypes", [Object]),
182
+ __metadata("design:returntype", Promise)
183
+ ], GitHubReposOverviewWorkflow.prototype, "fetchUser", null);
173
184
  __decorate([
174
- (0, common_2.InjectDocument)(),
175
- __metadata("design:type", core_1.LinkDocument)
176
- ], GitHubReposOverviewWorkflow.prototype, "linkDocument", void 0);
185
+ (0, common_1.Transition)({ from: 'user_fetched', to: 'awaiting_auth', priority: 10 }),
186
+ (0, common_1.Guard)('needsAuth'),
187
+ __metadata("design:type", Function),
188
+ __metadata("design:paramtypes", []),
189
+ __metadata("design:returntype", Promise)
190
+ ], GitHubReposOverviewWorkflow.prototype, "authRequired", null);
191
+ __decorate([
192
+ (0, common_1.Transition)({
193
+ from: 'awaiting_auth',
194
+ to: 'start',
195
+ wait: true,
196
+ schema: common_1.CallbackSchema,
197
+ }),
198
+ __metadata("design:type", Function),
199
+ __metadata("design:paramtypes", [Object]),
200
+ __metadata("design:returntype", Promise)
201
+ ], GitHubReposOverviewWorkflow.prototype, "authCompleted", null);
177
202
  __decorate([
178
- (0, common_2.InjectDocument)(),
179
- __metadata("design:type", core_1.MarkdownDocument)
180
- ], GitHubReposOverviewWorkflow.prototype, "markdown", void 0);
203
+ (0, common_1.Transition)({ from: 'user_fetched', to: 'orgs_fetched' }),
204
+ __metadata("design:type", Function),
205
+ __metadata("design:paramtypes", []),
206
+ __metadata("design:returntype", Promise)
207
+ ], GitHubReposOverviewWorkflow.prototype, "fetchOrgs", null);
181
208
  __decorate([
182
- (0, common_2.InjectWorkflow)(),
183
- __metadata("design:type", oauth_module_1.OAuthWorkflow)
184
- ], GitHubReposOverviewWorkflow.prototype, "oAuth", void 0);
209
+ (0, common_1.Transition)({ from: 'orgs_fetched', to: 'repo_fetched' }),
210
+ __metadata("design:type", Function),
211
+ __metadata("design:paramtypes", []),
212
+ __metadata("design:returntype", Promise)
213
+ ], GitHubReposOverviewWorkflow.prototype, "fetchRepoDetails", null);
185
214
  __decorate([
186
- (0, common_2.Input)({
187
- schema: zod_1.z
188
- .object({
189
- owner: zod_1.z.string().default('octocat'),
190
- repo: zod_1.z.string().default('Hello-World'),
191
- })
192
- .strict(),
193
- }),
194
- __metadata("design:type", Object)
195
- ], GitHubReposOverviewWorkflow.prototype, "args", void 0);
215
+ (0, common_1.Transition)({ from: 'repo_fetched', to: 'issues_prs_fetched' }),
216
+ __metadata("design:type", Function),
217
+ __metadata("design:paramtypes", []),
218
+ __metadata("design:returntype", Promise)
219
+ ], GitHubReposOverviewWorkflow.prototype, "fetchIssuesPrs", null);
196
220
  __decorate([
197
- (0, common_2.Context)(),
198
- __metadata("design:type", Object)
199
- ], GitHubReposOverviewWorkflow.prototype, "context", void 0);
221
+ (0, common_1.Transition)({ from: 'issues_prs_fetched', to: 'content_actions_fetched' }),
222
+ __metadata("design:type", Function),
223
+ __metadata("design:paramtypes", []),
224
+ __metadata("design:returntype", Promise)
225
+ ], GitHubReposOverviewWorkflow.prototype, "fetchContentActions", null);
200
226
  __decorate([
201
- (0, common_2.Runtime)(),
202
- __metadata("design:type", Object)
203
- ], GitHubReposOverviewWorkflow.prototype, "runtime", void 0);
227
+ (0, common_1.Transition)({ from: 'content_actions_fetched', to: 'search_done' }),
228
+ __metadata("design:type", Function),
229
+ __metadata("design:paramtypes", []),
230
+ __metadata("design:returntype", Promise)
231
+ ], GitHubReposOverviewWorkflow.prototype, "fetchSearch", null);
204
232
  __decorate([
205
- (0, common_2.State)({
233
+ (0, common_1.Final)({ from: 'search_done' }),
234
+ __metadata("design:type", Function),
235
+ __metadata("design:paramtypes", []),
236
+ __metadata("design:returntype", Promise)
237
+ ], GitHubReposOverviewWorkflow.prototype, "displayResults", null);
238
+ exports.GitHubReposOverviewWorkflow = GitHubReposOverviewWorkflow = __decorate([
239
+ (0, common_1.Workflow)({
240
+ uiConfig: __dirname + '/github-repos-overview.ui.yaml',
206
241
  schema: zod_1.z
207
242
  .object({
208
- requiresAuthentication: zod_1.z.boolean().optional(),
209
- user: zod_1.z
210
- .object({
211
- login: zod_1.z.string(),
212
- name: zod_1.z.string().nullable(),
213
- htmlUrl: zod_1.z.string(),
214
- publicRepos: zod_1.z.number(),
215
- })
216
- .optional(),
217
- orgs: zod_1.z
218
- .array(zod_1.z.object({
219
- login: zod_1.z.string(),
220
- description: zod_1.z.string().nullable(),
221
- }))
222
- .optional(),
223
- repo: zod_1.z
224
- .object({
225
- fullName: zod_1.z.string(),
226
- description: zod_1.z.string().nullable(),
227
- language: zod_1.z.string().nullable(),
228
- stars: zod_1.z.number(),
229
- forks: zod_1.z.number(),
230
- openIssues: zod_1.z.number(),
231
- defaultBranch: zod_1.z.string(),
232
- htmlUrl: zod_1.z.string(),
233
- })
234
- .optional(),
235
- branches: zod_1.z
236
- .array(zod_1.z.object({
237
- name: zod_1.z.string(),
238
- protected: zod_1.z.boolean(),
239
- }))
240
- .optional(),
241
- issues: zod_1.z
242
- .array(zod_1.z.object({
243
- number: zod_1.z.number(),
244
- title: zod_1.z.string(),
245
- state: zod_1.z.string(),
246
- user: zod_1.z.string(),
247
- htmlUrl: zod_1.z.string(),
248
- }))
249
- .optional(),
250
- pullRequests: zod_1.z
251
- .array(zod_1.z.object({
252
- number: zod_1.z.number(),
253
- title: zod_1.z.string(),
254
- state: zod_1.z.string(),
255
- user: zod_1.z.string(),
256
- draft: zod_1.z.boolean(),
257
- htmlUrl: zod_1.z.string(),
258
- }))
259
- .optional(),
260
- directoryEntries: zod_1.z
261
- .array(zod_1.z.object({
262
- name: zod_1.z.string(),
263
- type: zod_1.z.string(),
264
- path: zod_1.z.string(),
265
- }))
266
- .optional(),
267
- workflowRuns: zod_1.z
268
- .array(zod_1.z.object({
269
- id: zod_1.z.number(),
270
- name: zod_1.z.string(),
271
- status: zod_1.z.string(),
272
- conclusion: zod_1.z.string().nullable(),
273
- htmlUrl: zod_1.z.string(),
274
- }))
275
- .optional(),
276
- searchResults: zod_1.z
277
- .array(zod_1.z.object({
278
- name: zod_1.z.string(),
279
- path: zod_1.z.string(),
280
- repository: zod_1.z.string(),
281
- }))
282
- .optional(),
243
+ owner: zod_1.z.string().default('octocat'),
244
+ repo: zod_1.z.string().default('Hello-World'),
283
245
  })
284
246
  .strict(),
285
- }),
286
- __metadata("design:type", Object)
287
- ], GitHubReposOverviewWorkflow.prototype, "state", void 0);
288
- __decorate([
289
- (0, common_2.DefineHelper)(),
290
- __metadata("design:type", Function),
291
- __metadata("design:paramtypes", []),
292
- __metadata("design:returntype", void 0)
293
- ], GitHubReposOverviewWorkflow.prototype, "searchQuery", null);
294
- exports.GitHubReposOverviewWorkflow = GitHubReposOverviewWorkflow = __decorate([
295
- (0, common_1.Injectable)(),
296
- (0, common_2.Workflow)({
297
- configFile: __dirname + '/github-repos-overview.workflow.yaml',
298
247
  })
299
248
  ], GitHubReposOverviewWorkflow);
300
249
  //# sourceMappingURL=github-repos-overview.workflow.js.map