@things-factory/operato-codelingua 6.1.66 → 7.0.7

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 (121) hide show
  1. package/README.md +66 -21
  2. package/_index.html +20 -11
  3. package/assets/images/hatiolab-logo.png +0 -0
  4. package/assets/images/user.png +0 -0
  5. package/assets/manifest.json +4 -4
  6. package/client/bootstrap.ts +199 -1
  7. package/client/icons/menu-icons.ts +91 -0
  8. package/client/pages/git-project/git-project-list-page.ts +334 -0
  9. package/client/route.ts +5 -7
  10. package/client/themes/dark.css +51 -0
  11. package/client/themes/light.css +51 -0
  12. package/client/viewparts/menu-tools.ts +170 -0
  13. package/client/viewparts/user-circle.ts +24 -0
  14. package/config/config.development.js +1 -5
  15. package/config/config.production.js +1 -5
  16. package/db.sqlite +0 -0
  17. package/dist-client/bootstrap.d.ts +7 -0
  18. package/dist-client/bootstrap.js +172 -0
  19. package/dist-client/bootstrap.js.map +1 -0
  20. package/dist-client/icons/menu-icons.d.ts +5 -0
  21. package/dist-client/icons/menu-icons.js +84 -0
  22. package/dist-client/icons/menu-icons.js.map +1 -0
  23. package/dist-client/index.d.ts +0 -0
  24. package/dist-client/index.js +2 -0
  25. package/dist-client/index.js.map +1 -0
  26. package/dist-client/pages/git-project/git-project-list-page.d.ts +53 -0
  27. package/dist-client/pages/git-project/git-project-list-page.js +318 -0
  28. package/dist-client/pages/git-project/git-project-list-page.js.map +1 -0
  29. package/dist-client/route.d.ts +1 -0
  30. package/dist-client/route.js +8 -0
  31. package/dist-client/route.js.map +1 -0
  32. package/dist-client/themes/dark.css +51 -0
  33. package/dist-client/themes/light.css +51 -0
  34. package/dist-client/tsconfig.tsbuildinfo +1 -0
  35. package/dist-client/viewparts/menu-tools.d.ts +17 -0
  36. package/dist-client/viewparts/menu-tools.js +172 -0
  37. package/dist-client/viewparts/menu-tools.js.map +1 -0
  38. package/dist-client/viewparts/user-circle.d.ts +5 -0
  39. package/dist-client/viewparts/user-circle.js +26 -0
  40. package/dist-client/viewparts/user-circle.js.map +1 -0
  41. package/dist-server/controllers/github-controller.d.ts +2 -0
  42. package/dist-server/controllers/github-controller.js +78 -0
  43. package/dist-server/controllers/github-controller.js.map +1 -0
  44. package/dist-server/controllers/index.d.ts +0 -0
  45. package/dist-server/index.d.ts +4 -0
  46. package/dist-server/index.js +3 -0
  47. package/dist-server/index.js.map +1 -1
  48. package/dist-server/middlewares/index.d.ts +1 -0
  49. package/dist-server/middlewares/index.js +7 -0
  50. package/dist-server/middlewares/index.js.map +1 -0
  51. package/dist-server/migrations/index.d.ts +1 -0
  52. package/dist-server/migrations/index.js +12 -0
  53. package/dist-server/migrations/index.js.map +1 -0
  54. package/dist-server/routers/github-webhook-router.d.ts +1 -0
  55. package/dist-server/routers/github-webhook-router.js +16 -0
  56. package/dist-server/routers/github-webhook-router.js.map +1 -0
  57. package/dist-server/routes.d.ts +1 -0
  58. package/dist-server/routes.js +4 -1
  59. package/dist-server/routes.js.map +1 -1
  60. package/dist-server/service/git-project/git-project-mutation.d.ts +10 -0
  61. package/dist-server/service/git-project/git-project-mutation.js +127 -0
  62. package/dist-server/service/git-project/git-project-mutation.js.map +1 -0
  63. package/dist-server/service/git-project/git-project-query.d.ts +11 -0
  64. package/dist-server/service/git-project/git-project-query.js +79 -0
  65. package/dist-server/service/git-project/git-project-query.js.map +1 -0
  66. package/dist-server/service/git-project/git-project-type.d.ts +20 -0
  67. package/dist-server/service/git-project/git-project-type.js +77 -0
  68. package/dist-server/service/git-project/git-project-type.js.map +1 -0
  69. package/dist-server/service/git-project/git-project.d.ts +22 -0
  70. package/dist-server/service/git-project/git-project.js +95 -0
  71. package/dist-server/service/git-project/git-project.js.map +1 -0
  72. package/dist-server/service/git-project/index.d.ts +6 -0
  73. package/dist-server/service/git-project/index.js +10 -0
  74. package/dist-server/service/git-project/index.js.map +1 -0
  75. package/dist-server/service/index.d.ts +5 -0
  76. package/dist-server/service/index.js +8 -3
  77. package/dist-server/service/index.js.map +1 -1
  78. package/dist-server/tsconfig.tsbuildinfo +1 -1
  79. package/helps/operato-codelingua/git-project.md +160 -0
  80. package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +17 -12
  81. package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +35 -0
  82. package/logs/application-2024-07-07-17.log +156 -0
  83. package/logs/application-2024-07-07-20.log +81 -0
  84. package/logs/application-2024-07-08-00.log +81 -0
  85. package/logs/application-2024-07-08-01.log +83 -0
  86. package/logs/application-2024-07-08-02.log +81 -0
  87. package/logs/connections-2024-07-07-17.log +41 -0
  88. package/logs/connections-2024-07-07-20.log +41 -0
  89. package/logs/connections-2024-07-08-00.log +41 -0
  90. package/logs/connections-2024-07-08-01.log +41 -0
  91. package/logs/connections-2024-07-08-02.log +41 -0
  92. package/package.json +57 -18
  93. package/schema.graphql +4259 -0
  94. package/server/controllers/github-controller.ts +73 -0
  95. package/server/index.ts +4 -0
  96. package/server/middlewares/index.ts +3 -0
  97. package/server/migrations/index.ts +9 -0
  98. package/server/routers/github-webhook-router.ts +21 -0
  99. package/server/routes.ts +3 -1
  100. package/server/service/git-project/git-project-mutation.ts +136 -0
  101. package/server/service/git-project/git-project-query.ts +48 -0
  102. package/server/service/git-project/git-project-type.ts +55 -0
  103. package/server/service/git-project/git-project.ts +84 -0
  104. package/server/service/git-project/index.ts +7 -0
  105. package/server/service/index.ts +8 -0
  106. package/things-factory.config.js +8 -0
  107. package/translations/en.json +3 -1
  108. package/translations/ja.json +3 -1
  109. package/translations/ko.json +3 -1
  110. package/translations/ms.json +3 -1
  111. package/translations/zh.json +3 -1
  112. package/views/auth-page.html +12 -8
  113. package/views/public/home.html +12 -9
  114. package/client/pages/main.ts +0 -33
  115. package/client/themes/app-theme.css +0 -142
  116. package/config.development.js +0 -7
  117. package/logs/application-2023-06-25-11.log +0 -12
  118. package/logs/application-2023-06-25-12.log +0 -34
  119. package/logs/application-2023-06-25-13.log +0 -8
  120. package/schema.gql +0 -841
  121. package/things-factory.config.ts +0 -13
@@ -0,0 +1,73 @@
1
+ import fetch from 'node-fetch'
2
+
3
+ const GITHUB_API_URL = 'https://api.github.com'
4
+ const WEBHOOK_URL = 'http://your-server-url/github-webhook'
5
+
6
+ export const postGitHubComment = async (repoFullName: string, commitId: string, comment: string): Promise<void> => {
7
+ try {
8
+ const response = await fetch(`${GITHUB_API_URL}/repos/${repoFullName}/commits/${commitId}/comments`, {
9
+ method: 'POST',
10
+ headers: {
11
+ 'Content-Type': 'application/json',
12
+ Authorization: `token ${process.env.GITHUB_API_KEY}`
13
+ },
14
+ body: JSON.stringify({ body: comment })
15
+ })
16
+ if (!response.ok) {
17
+ console.error('Failed to post GitHub comment:', response.statusText)
18
+ }
19
+ } catch (error) {
20
+ console.error('Error posting GitHub comment:', error)
21
+ }
22
+ }
23
+
24
+ const webhookExists = async (repoFullName: string): Promise<boolean> => {
25
+ try {
26
+ const response = await fetch(`${GITHUB_API_URL}/repos/${repoFullName}/hooks`, {
27
+ method: 'GET',
28
+ headers: {
29
+ 'Content-Type': 'application/json',
30
+ Authorization: `token ${process.env.GITHUB_API_KEY}`
31
+ }
32
+ })
33
+ const hooks = await response.json()
34
+ return hooks.some((hook: any) => hook.config.url === WEBHOOK_URL)
35
+ } catch (error) {
36
+ console.error('Error checking webhook existence:', error)
37
+ return false
38
+ }
39
+ }
40
+
41
+ export const registerWebhook = async (repoFullName: string) => {
42
+ if (await webhookExists(repoFullName)) {
43
+ console.log('Webhook already registered.')
44
+ return
45
+ }
46
+
47
+ try {
48
+ const response = await fetch(`${GITHUB_API_URL}/repos/${repoFullName}/hooks`, {
49
+ method: 'POST',
50
+ headers: {
51
+ 'Content-Type': 'application/json',
52
+ Authorization: `token ${process.env.GITHUB_API_KEY}`
53
+ },
54
+ body: JSON.stringify({
55
+ name: 'web',
56
+ active: true,
57
+ events: ['push'],
58
+ config: {
59
+ url: WEBHOOK_URL,
60
+ content_type: 'json'
61
+ }
62
+ })
63
+ })
64
+
65
+ if (!response.ok) {
66
+ console.error('Failed to register webhook:', response.statusText)
67
+ } else {
68
+ console.log('Webhook registered successfully.')
69
+ }
70
+ } catch (error) {
71
+ console.error('Error registering webhook:', error)
72
+ }
73
+ }
package/server/index.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  import './routes'
2
2
 
3
+ export * from './migrations'
4
+ export * from './middlewares'
3
5
  export * from './service'
6
+
7
+ /* github webhook 이 등록되지 않았다면, 웹훅을 등록한다. */
@@ -0,0 +1,3 @@
1
+ export function initMiddlewares(app) {
2
+ /* can add middlewares into app */
3
+ }
@@ -0,0 +1,9 @@
1
+ const glob = require('glob')
2
+ const path = require('path')
3
+
4
+ export var migrations = []
5
+
6
+ glob.sync(path.resolve(__dirname, '.', '**', '*.js')).forEach(function(file) {
7
+ if (file.indexOf('index.js') !== -1) return
8
+ migrations = migrations.concat(Object.values(require(path.resolve(file))) || [])
9
+ })
@@ -0,0 +1,21 @@
1
+ import Router from 'koa-router'
2
+ import { codereviewCompletion } from '@things-factory/codelingua'
3
+
4
+ import { postGitHubComment } from '../controllers/github-controller'
5
+
6
+ export const githubWebhookRouter = new Router()
7
+
8
+ githubWebhookRouter.post('/github-webhook', async (context, next) => {
9
+ const commitDiff = context.request.body.head_commit.diff
10
+
11
+ const reviewFeedback = await codereviewCompletion(commitDiff)
12
+
13
+ await postGitHubComment(
14
+ context.request.body.repository.full_name,
15
+ context.request.body.head_commit.id,
16
+ reviewFeedback
17
+ )
18
+
19
+ context.status = 200
20
+ context.body = 'Success'
21
+ })
package/server/routes.ts CHANGED
@@ -1,4 +1,4 @@
1
- const debug = require('debug')('things-factory:operato-codelingua:routes')
1
+ import { githubWebhookRouter } from './routers/github-webhook-router'
2
2
 
3
3
  process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {
4
4
  /*
@@ -7,6 +7,8 @@ process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRout
7
7
  * ex) routes.get('/path', async(context, next) => {})
8
8
  * ex) routes.post('/path', async(context, next) => {})
9
9
  */
10
+
11
+ globalPublicRouter.use('', githubWebhookRouter.routes(), githubWebhookRouter.allowedMethods())
10
12
  })
11
13
 
12
14
  process.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {
@@ -0,0 +1,136 @@
1
+ import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'
2
+ import { In } from 'typeorm'
3
+
4
+ import { GitProject } from './git-project'
5
+ import { NewGitProject, GitProjectPatch } from './git-project-type'
6
+
7
+ @Resolver(GitProject)
8
+ export class GitProjectMutation {
9
+ @Directive('@transaction')
10
+ @Mutation(returns => GitProject, { description: 'To create new GitProject' })
11
+ async createGitProject(@Arg('gitProject') gitProject: NewGitProject, @Ctx() context: ResolverContext): Promise<GitProject> {
12
+ const { domain, user, tx } = context.state
13
+
14
+ const result = await tx.getRepository(GitProject).save({
15
+ ...gitProject,
16
+ domain,
17
+ creator: user,
18
+ updater: user
19
+ })
20
+
21
+ return result
22
+ }
23
+
24
+ @Directive('@transaction')
25
+ @Mutation(returns => GitProject, { description: 'To modify GitProject information' })
26
+ async updateGitProject(
27
+ @Arg('id') id: string,
28
+ @Arg('patch') patch: GitProjectPatch,
29
+ @Ctx() context: ResolverContext
30
+ ): Promise<GitProject> {
31
+ const { domain, user, tx } = context.state
32
+
33
+ const repository = tx.getRepository(GitProject)
34
+ const gitProject = await repository.findOne({
35
+ where: { domain: { id: domain.id }, id }
36
+ })
37
+
38
+ const result = await repository.save({
39
+ ...gitProject,
40
+ ...patch,
41
+ updater: user
42
+ })
43
+
44
+ return result
45
+ }
46
+
47
+ @Directive('@transaction')
48
+ @Mutation(returns => [GitProject], { description: "To modify multiple GitProjects' information" })
49
+ async updateMultipleGitProject(
50
+ @Arg('patches', type => [GitProjectPatch]) patches: GitProjectPatch[],
51
+ @Ctx() context: ResolverContext
52
+ ): Promise<GitProject[]> {
53
+ const { domain, user, tx } = context.state
54
+
55
+ let results = []
56
+ const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
57
+ const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
58
+ const gitProjectRepo = tx.getRepository(GitProject)
59
+
60
+ if (_createRecords.length > 0) {
61
+ for (let i = 0; i < _createRecords.length; i++) {
62
+ const newRecord = _createRecords[i]
63
+
64
+ const result = await gitProjectRepo.save({
65
+ ...newRecord,
66
+ domain,
67
+ creator: user,
68
+ updater: user
69
+ })
70
+
71
+ results.push({ ...result, cuFlag: '+' })
72
+ }
73
+ }
74
+
75
+ if (_updateRecords.length > 0) {
76
+ for (let i = 0; i < _updateRecords.length; i++) {
77
+ const updateRecord = _updateRecords[i]
78
+ const gitProject = await gitProjectRepo.findOneBy({ id: updateRecord.id })
79
+
80
+ const result = await gitProjectRepo.save({
81
+ ...gitProject,
82
+ ...updateRecord,
83
+ updater: user
84
+ })
85
+
86
+ results.push({ ...result, cuFlag: 'M' })
87
+ }
88
+ }
89
+
90
+ return results
91
+ }
92
+
93
+ @Directive('@transaction')
94
+ @Mutation(returns => Boolean, { description: 'To delete GitProject' })
95
+ async deleteGitProject(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
96
+ const { domain, tx } = context.state
97
+
98
+ await tx.getRepository(GitProject).delete({ domain: { id: domain.id }, id })
99
+
100
+ return true
101
+ }
102
+
103
+ @Directive('@transaction')
104
+ @Mutation(returns => Boolean, { description: 'To delete multiple GitProjects' })
105
+ async deleteGitProjects(
106
+ @Arg('ids', type => [String]) ids: string[],
107
+ @Ctx() context: ResolverContext
108
+ ): Promise<boolean> {
109
+ const { domain, tx } = context.state
110
+
111
+ await tx.getRepository(GitProject).delete({
112
+ domain: { id: domain.id },
113
+ id: In(ids)
114
+ })
115
+
116
+
117
+ return true
118
+ }
119
+
120
+ @Directive('@transaction')
121
+ @Mutation(returns => Boolean, { description: 'To import multiple GitProjects' })
122
+ async importGitProjects(
123
+ @Arg('gitProjects', type => [GitProjectPatch]) gitProjects: GitProjectPatch[],
124
+ @Ctx() context: ResolverContext
125
+ ): Promise<boolean> {
126
+ const { domain, tx } = context.state
127
+
128
+ await Promise.all(
129
+ gitProjects.map(async (gitProject: GitProjectPatch) => {
130
+ const createdGitProject: GitProject = await tx.getRepository(GitProject).save({ domain, ...gitProject })
131
+ })
132
+ )
133
+
134
+ return true
135
+ }
136
+ }
@@ -0,0 +1,48 @@
1
+ import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'
2
+ import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
3
+ import { User } from '@things-factory/auth-base'
4
+ import { GitProject } from './git-project'
5
+ import { GitProjectList } from './git-project-type'
6
+
7
+ @Resolver(GitProject)
8
+ export class GitProjectQuery {
9
+ @Query(returns => GitProject!, { nullable: true, description: 'To fetch a GitProject' })
10
+ async gitProject(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<GitProject> {
11
+ const { domain } = context.state
12
+
13
+ return await getRepository(GitProject).findOne({
14
+ where: { domain: { id: domain.id }, id }
15
+ })
16
+ }
17
+
18
+ @Query(returns => GitProjectList, { description: 'To fetch multiple GitProjects' })
19
+ async gitProjects(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<GitProjectList> {
20
+ const { domain } = context.state
21
+
22
+ const queryBuilder = getQueryBuilderFromListParams({
23
+ domain,
24
+ params,
25
+ repository: await getRepository(GitProject),
26
+ searchables: ['name', 'description']
27
+ })
28
+
29
+ const [items, total] = await queryBuilder.getManyAndCount()
30
+
31
+ return { items, total }
32
+ }
33
+
34
+ @FieldResolver(type => Domain)
35
+ async domain(@Root() gitProject: GitProject): Promise<Domain> {
36
+ return gitProject.domainId && (await getRepository(Domain).findOneBy({ id: gitProject.domainId }))
37
+ }
38
+
39
+ @FieldResolver(type => User)
40
+ async updater(@Root() gitProject: GitProject): Promise<User> {
41
+ return gitProject.updaterId && (await getRepository(User).findOneBy({ id: gitProject.updaterId }))
42
+ }
43
+
44
+ @FieldResolver(type => User)
45
+ async creator(@Root() gitProject: GitProject): Promise<User> {
46
+ return gitProject.creatorId && (await getRepository(User).findOneBy({ id: gitProject.creatorId }))
47
+ }
48
+ }
@@ -0,0 +1,55 @@
1
+ import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'
2
+ import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'
3
+ import { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'
4
+
5
+ import { ObjectRef, ScalarObject } from '@things-factory/shell'
6
+
7
+ import { GitProject, GitProjectStatus } from './git-project'
8
+
9
+ @InputType()
10
+ export class NewGitProject {
11
+ @Field()
12
+ name: string
13
+
14
+ @Field({ nullable: true })
15
+ description?: string
16
+
17
+ @Field(type => GitProjectStatus, { nullable: true })
18
+ state?: GitProjectStatus
19
+
20
+ @Field({ nullable: true })
21
+ active?: boolean
22
+
23
+ @Field({ nullable: true })
24
+ params?: string
25
+ }
26
+
27
+ @InputType()
28
+ export class GitProjectPatch {
29
+ @Field(type => ID, { nullable: true })
30
+ id?: string
31
+
32
+ @Field({ nullable: true })
33
+ name?: string
34
+
35
+ @Field({ nullable: true })
36
+ description?: string
37
+
38
+ @Field(type => GitProjectStatus, { nullable: true })
39
+ state?: GitProjectStatus
40
+
41
+ @Field({ nullable: true })
42
+ active?: boolean
43
+
44
+ @Field({ nullable: true })
45
+ cuFlag?: string
46
+ }
47
+
48
+ @ObjectType()
49
+ export class GitProjectList {
50
+ @Field(type => [GitProject])
51
+ items: GitProject[]
52
+
53
+ @Field(type => Int)
54
+ total: number
55
+ }
@@ -0,0 +1,84 @@
1
+ import {
2
+ CreateDateColumn,
3
+ UpdateDateColumn,
4
+ Entity,
5
+ Index,
6
+ Column,
7
+ RelationId,
8
+ ManyToOne,
9
+ PrimaryGeneratedColumn
10
+ } from 'typeorm'
11
+ import { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'
12
+
13
+ import { Domain } from '@things-factory/shell'
14
+ import { User } from '@things-factory/auth-base'
15
+
16
+ export enum GitProjectStatus {
17
+ STATUS_A = 'STATUS_A',
18
+ STATUS_B = 'STATUS_B'
19
+ }
20
+
21
+ registerEnumType(GitProjectStatus, {
22
+ name: 'GitProjectStatus',
23
+ description: 'state enumeration of a gitProject'
24
+ })
25
+
26
+ @Entity()
27
+ @Index('ix_git_project_0', (gitProject: GitProject) => [gitProject.domain, gitProject.name], {
28
+ unique: true
29
+ })
30
+ @ObjectType({ description: 'Entity for GitProject' })
31
+ export class GitProject {
32
+ @PrimaryGeneratedColumn('uuid')
33
+ @Field(type => ID)
34
+ readonly id: string
35
+
36
+ @ManyToOne(type => Domain)
37
+ @Field({ nullable: true })
38
+ domain?: Domain
39
+
40
+ @RelationId((gitProject: GitProject) => gitProject.domain)
41
+ domainId?: string
42
+
43
+ @Column()
44
+ @Field({ nullable: true })
45
+ name?: string
46
+
47
+ @Column({ nullable: true })
48
+ @Field({ nullable: true })
49
+ description?: string
50
+
51
+ @Column({ nullable: true })
52
+ @Field({ nullable: true })
53
+ active?: boolean
54
+
55
+ @Column({ nullable: true })
56
+ @Field({ nullable: true })
57
+ state?: GitProjectStatus
58
+
59
+ @Column({ nullable: true })
60
+ @Field({ nullable: true })
61
+ params?: string
62
+
63
+ @CreateDateColumn()
64
+ @Field({ nullable: true })
65
+ createdAt?: Date
66
+
67
+ @UpdateDateColumn()
68
+ @Field({ nullable: true })
69
+ updatedAt?: Date
70
+
71
+ @ManyToOne(type => User, { nullable: true })
72
+ @Field(type => User, { nullable: true })
73
+ creator?: User
74
+
75
+ @RelationId((gitProject: GitProject) => gitProject.creator)
76
+ creatorId?: string
77
+
78
+ @ManyToOne(type => User, { nullable: true })
79
+ @Field(type => User, { nullable: true })
80
+ updater?: User
81
+
82
+ @RelationId((gitProject: GitProject) => gitProject.updater)
83
+ updaterId?: string
84
+ }
@@ -0,0 +1,7 @@
1
+ import { GitProject } from './git-project'
2
+ import { GitProjectQuery } from './git-project-query'
3
+ import { GitProjectMutation } from './git-project-mutation'
4
+
5
+ export const entities = [GitProject]
6
+ export const resolvers = [GitProjectQuery, GitProjectMutation]
7
+ export const subscribers = []
@@ -1,13 +1,21 @@
1
1
  /* EXPORT ENTITY TYPES */
2
+ export * from './git-project/git-project'
2
3
 
3
4
  /* IMPORT ENTITIES AND RESOLVERS */
5
+ import {
6
+ entities as GitProjectEntities,
7
+ resolvers as GitProjectResolvers,
8
+ subscribers as GitProjectSubscribers
9
+ } from './git-project'
4
10
 
5
11
  export const entities = [
6
12
  /* ENTITIES */
13
+ ...GitProjectEntities
7
14
  ]
8
15
 
9
16
  export const schema = {
10
17
  resolverClasses: [
11
18
  /* RESOLVER CLASSES */
19
+ ...GitProjectResolvers
12
20
  ]
13
21
  }
@@ -0,0 +1,8 @@
1
+ import route from './dist-client/route'
2
+ import bootstrap from './dist-client/bootstrap'
3
+
4
+ export default {
5
+ route,
6
+ routes: [{ tagname: 'git-project-list-page', page: 'git-project-list' }],
7
+ bootstrap
8
+ }
@@ -1 +1,3 @@
1
- {}
1
+ {
2
+ "title.git-project list": "git project list"
3
+ }
@@ -1 +1,3 @@
1
- {}
1
+ {
2
+ "title.git-project list": "git プロジェクト一覧"
3
+ }
@@ -1 +1,3 @@
1
- {}
1
+ {
2
+ "title.git-project list": "git 프로젝트 리스트"
3
+ }
@@ -1 +1,3 @@
1
- {}
1
+ {
2
+ "title.git-project list": "senarai projek git"
3
+ }
@@ -1 +1,3 @@
1
- {}
1
+ {
2
+ "title.git-project list": "git 项目列表"
3
+ }
@@ -2,10 +2,11 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>Codelingua</title>
5
+ <title>Operato-Codelingua</title>
6
6
  <meta name="generator" content="Things Factory Starter Kit" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1" />
8
- <meta name="description" content="Deciphering Code, Simplifying Understanding" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
8
+ <meta name="description" content="Revolutionizing Software Development: Work Smarter, Code Better" />
9
+ <meta name="google" content="notranslate"/>
9
10
 
10
11
  <base href="/" />
11
12
 
@@ -19,15 +20,15 @@
19
20
 
20
21
  <!-- Add to homescreen for Chrome on Android. Fallback for manifest.json -->
21
22
  <meta name="mobile-web-app-capable" content="yes" />
22
- <meta name="application-name" content="Codelingua" />
23
- <meta name="application-description" content="Deciphering Code, Simplifying Understanding" />
23
+ <meta name="application-name" content="Operato-Codelingua" />
24
+ <meta name="application-description" content="Revolutionizing Software Development: Work Smarter, Code Better" />
24
25
  <meta name="application-copyright" content="Copyright © hatiolab.com. All Rights Reserved." />
25
26
  <link rel="application-icon" href="/assets/manifest/icon-96x96.png" />
26
27
 
27
28
  <!-- Add to homescreen for Safari on iOS -->
28
29
  <meta name="apple-mobile-web-app-capable" content="yes" />
29
30
  <meta name="apple-mobile-web-app-status-bar-style" content="default" />
30
- <meta name="apple-mobile-web-app-title" content="Codelingua" />
31
+ <meta name="apple-mobile-web-app-title" content="Operato-Codelingua" />
31
32
 
32
33
  <!-- Homescreen icons -->
33
34
  <link rel="apple-touch-icon" href="/assets/manifest/icon-48x48.png" />
@@ -45,14 +46,17 @@
45
46
  <meta name="twitter:card" content="summary" />
46
47
  <meta name="twitter:site" content="@username" />
47
48
  <meta property="og:type" content="website" />
48
- <meta property="og:site_name" content="Codelingua, Deciphering Code, Simplifying Understanding." />
49
+ <meta property="og:site_name" content="Operato-Codelingua, Revolutionizing Software Development: Work Smarter, Code Better." />
49
50
  <meta property="og:image" content="/assets/manifest/image-metaog.png" />
50
51
 
51
52
  <!-- Performance tip: hint to the browser to start the handshake for the fonts site -->
52
53
  <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin />
53
54
  <link href="/node_modules/@material-design-icons/font/index.css" rel="stylesheet" />
55
+ <link href="/node_modules/material-symbols/index.css" rel="stylesheet" />
56
+ <link href="/node_modules/@fontsource/roboto/index.css" rel="stylesheet" />
54
57
  <link rel="stylesheet" href="/theme.css" />
55
58
 
59
+
56
60
  <style>
57
61
  body {
58
62
  margin: 0;
@@ -72,7 +76,7 @@
72
76
  <link rel="prefetch" href="/auth/forgot-password.js">
73
77
  <link rel="prefetch" href="/auth/checkin.js">
74
78
  </head>
75
- <body>
79
+ <body class="light">
76
80
  <<%- pageElement %> id="page"></<%- pageElement %>>
77
81
  <noscript>
78
82
  Please enable JavaScript to view this website.
@@ -1,11 +1,12 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <title>Codelingua</title>
5
+ <meta name="google" content="notranslate" />
6
+ <title>Operato-Codelingua</title>
6
7
  <meta name="generator" content="Things Factory Starter Kit" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1" />
8
- <meta name="description" content="Deciphering Code, Simplifying Understanding" />
8
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
9
+ <meta name="description" content="Revolutionizing Software Development: Work Smarter, Code Better" />
9
10
 
10
11
  <base href="/" />
11
12
 
@@ -19,15 +20,15 @@
19
20
 
20
21
  <!-- Add to homescreen for Chrome on Android. Fallback for manifest.json -->
21
22
  <meta name="mobile-web-app-capable" content="yes" />
22
- <meta name="application-name" content="Codelingua" />
23
- <meta name="application-description" content="Deciphering Code, Simplifying Understanding" />
23
+ <meta name="application-name" content="Operato-Codelingua" />
24
+ <meta name="application-description" content="Revolutionizing Software Development: Work Smarter, Code Better" />
24
25
  <meta name="application-copyright" content="Copyright © hatiolab.com. All Rights Reserved." />
25
26
  <link rel="application-icon" href="/assets/manifest/icon-96x96.png" />
26
27
 
27
28
  <!-- Add to homescreen for Safari on iOS -->
28
29
  <meta name="apple-mobile-web-app-capable" content="yes" />
29
30
  <meta name="apple-mobile-web-app-status-bar-style" content="default" />
30
- <meta name="apple-mobile-web-app-title" content="Codelingua" />
31
+ <meta name="apple-mobile-web-app-title" content="Operato-Codelingua" />
31
32
 
32
33
  <!-- Homescreen icons -->
33
34
  <link rel="apple-touch-icon" href="/assets/manifest/icon-48x48.png" />
@@ -45,12 +46,14 @@
45
46
  <meta name="twitter:card" content="summary" />
46
47
  <meta name="twitter:site" content="@username" />
47
48
  <meta property="og:type" content="website" />
48
- <meta property="og:site_name" content="Codelingua, Heart of platform." />
49
+ <meta property="og:site_name" content="Operato-Codelingua, Heart of platform." />
49
50
  <meta property="og:image" content="/assets/manifest/image-metaog.png" />
50
51
 
51
52
  <!-- Performance tip: hint to the browser to start the handshake for the fonts site -->
52
53
  <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin />
53
54
  <link href="/node_modules/@material-design-icons/font/index.css" rel="stylesheet" />
55
+ <link href="/node_modules/material-symbols/index.css" rel="stylesheet" />
56
+ <link href="/node_modules/@fontsource/roboto/index.css" rel="stylesheet" />
54
57
  <link rel="stylesheet" href="/theme.css" />
55
58
 
56
59
  <style>
@@ -69,7 +72,7 @@
69
72
  <!--- prefetch -->
70
73
  <link rel="prefetch" href="/public/home.js" />
71
74
  </head>
72
- <body>
75
+ <body class="light">
73
76
  <home-page id="page"></home-page>
74
77
  <noscript> Please enable JavaScript to view this website. </noscript>
75
78
  <!-- Load webcomponents-loader.js to check and load any polyfills your browser needs -->