@neuralinnovations/dataisland-sdk 0.0.1-dev2 → 0.0.1-dev21

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 (286) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +306 -1
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +3 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/package.json +100 -0
  8. package/dist/src/appBuilder.d.ts +44 -0
  9. package/dist/src/appBuilder.d.ts.map +1 -0
  10. package/dist/src/appBuilder.js +10 -0
  11. package/dist/src/appBuilder.js.map +1 -0
  12. package/dist/src/commands/startCommandHandler.d.ts +7 -0
  13. package/dist/src/commands/startCommandHandler.d.ts.map +1 -0
  14. package/dist/src/commands/startCommandHandler.js +17 -0
  15. package/dist/src/commands/startCommandHandler.js.map +1 -0
  16. package/dist/src/context.d.ts +23 -0
  17. package/dist/src/context.d.ts.map +1 -0
  18. package/dist/src/context.js +31 -0
  19. package/dist/src/context.js.map +1 -0
  20. package/dist/src/credentials.d.ts +28 -0
  21. package/dist/src/credentials.d.ts.map +1 -0
  22. package/dist/src/credentials.js +70 -0
  23. package/dist/src/credentials.js.map +1 -0
  24. package/dist/src/dataIslandApp.d.ts +50 -0
  25. package/dist/src/dataIslandApp.d.ts.map +1 -0
  26. package/dist/src/dataIslandApp.js +10 -0
  27. package/dist/src/dataIslandApp.js.map +1 -0
  28. package/dist/src/disposable.d.ts +84 -0
  29. package/dist/src/disposable.d.ts.map +1 -0
  30. package/dist/src/disposable.js +147 -0
  31. package/dist/src/disposable.js.map +1 -0
  32. package/dist/src/dto/accessGroupResponse.d.ts +27 -0
  33. package/dist/src/dto/accessGroupResponse.d.ts.map +1 -0
  34. package/dist/src/dto/accessGroupResponse.js +3 -0
  35. package/dist/src/dto/accessGroupResponse.js.map +1 -0
  36. package/dist/src/dto/chatResponse.d.ts +78 -0
  37. package/dist/src/dto/chatResponse.d.ts.map +1 -0
  38. package/dist/src/dto/chatResponse.js +45 -0
  39. package/dist/src/dto/chatResponse.js.map +1 -0
  40. package/dist/src/dto/userInfoResponse.d.ts +42 -0
  41. package/dist/src/dto/userInfoResponse.d.ts.map +1 -0
  42. package/dist/src/dto/userInfoResponse.js +3 -0
  43. package/dist/src/dto/userInfoResponse.js.map +1 -0
  44. package/dist/src/dto/workspacesResponse.d.ts +43 -0
  45. package/dist/src/dto/workspacesResponse.d.ts.map +1 -0
  46. package/dist/src/dto/workspacesResponse.js +3 -0
  47. package/dist/src/dto/workspacesResponse.js.map +1 -0
  48. package/dist/src/events.d.ts +17 -0
  49. package/dist/src/events.d.ts.map +1 -0
  50. package/dist/src/events.js +52 -0
  51. package/dist/src/events.js.map +1 -0
  52. package/dist/src/index.d.ts +58 -0
  53. package/dist/src/index.d.ts.map +1 -0
  54. package/dist/src/index.js +91 -0
  55. package/dist/src/index.js.map +1 -0
  56. package/dist/src/internal/app.impl.d.ts +28 -0
  57. package/dist/src/internal/app.impl.d.ts.map +1 -0
  58. package/dist/src/internal/app.impl.js +151 -0
  59. package/dist/src/internal/app.impl.js.map +1 -0
  60. package/dist/src/internal/appBuilder.impl.d.ts +27 -0
  61. package/dist/src/internal/appBuilder.impl.d.ts.map +1 -0
  62. package/dist/src/internal/appBuilder.impl.js +71 -0
  63. package/dist/src/internal/appBuilder.impl.js.map +1 -0
  64. package/dist/src/internal/createApp.impl.d.ts +4 -0
  65. package/dist/src/internal/createApp.impl.d.ts.map +1 -0
  66. package/dist/src/internal/createApp.impl.js +11 -0
  67. package/dist/src/internal/createApp.impl.js.map +1 -0
  68. package/dist/src/internal/registry.d.ts +66 -0
  69. package/dist/src/internal/registry.d.ts.map +1 -0
  70. package/dist/src/internal/registry.js +114 -0
  71. package/dist/src/internal/registry.js.map +1 -0
  72. package/dist/src/middleware.d.ts +5 -0
  73. package/dist/src/middleware.d.ts.map +1 -0
  74. package/dist/src/middleware.js +3 -0
  75. package/dist/src/middleware.js.map +1 -0
  76. package/dist/src/services/commandService.d.ts +18 -0
  77. package/dist/src/services/commandService.d.ts.map +1 -0
  78. package/dist/src/services/commandService.js +40 -0
  79. package/dist/src/services/commandService.js.map +1 -0
  80. package/dist/src/services/credentialService.d.ts +9 -0
  81. package/dist/src/services/credentialService.d.ts.map +1 -0
  82. package/dist/src/services/credentialService.js +26 -0
  83. package/dist/src/services/credentialService.js.map +1 -0
  84. package/dist/src/services/middlewareService.d.ts +9 -0
  85. package/dist/src/services/middlewareService.d.ts.map +1 -0
  86. package/dist/src/services/middlewareService.js +34 -0
  87. package/dist/src/services/middlewareService.js.map +1 -0
  88. package/dist/src/services/organizationService.d.ts +10 -0
  89. package/dist/src/services/organizationService.d.ts.map +1 -0
  90. package/dist/src/services/organizationService.js +19 -0
  91. package/dist/src/services/organizationService.js.map +1 -0
  92. package/dist/src/services/requestBuilder.d.ts +17 -0
  93. package/dist/src/services/requestBuilder.d.ts.map +1 -0
  94. package/dist/src/services/requestBuilder.js +104 -0
  95. package/dist/src/services/requestBuilder.js.map +1 -0
  96. package/dist/src/services/responseUtils.d.ts +6 -0
  97. package/dist/src/services/responseUtils.d.ts.map +1 -0
  98. package/dist/src/services/responseUtils.js +32 -0
  99. package/dist/src/services/responseUtils.js.map +1 -0
  100. package/dist/src/services/rpcService.d.ts +77 -0
  101. package/dist/src/services/rpcService.d.ts.map +1 -0
  102. package/dist/src/services/rpcService.js +125 -0
  103. package/dist/src/services/rpcService.js.map +1 -0
  104. package/dist/src/services/service.d.ts +21 -0
  105. package/dist/src/services/service.d.ts.map +1 -0
  106. package/dist/src/services/service.js +41 -0
  107. package/dist/src/services/service.js.map +1 -0
  108. package/dist/src/services/userProfileService.d.ts +8 -0
  109. package/dist/src/services/userProfileService.d.ts.map +1 -0
  110. package/dist/src/services/userProfileService.js +32 -0
  111. package/dist/src/services/userProfileService.js.map +1 -0
  112. package/dist/src/storages/chats/answer.d.ts +40 -0
  113. package/dist/src/storages/chats/answer.d.ts.map +1 -0
  114. package/dist/src/storages/chats/answer.impl.d.ts +24 -0
  115. package/dist/src/storages/chats/answer.impl.d.ts.map +1 -0
  116. package/dist/src/storages/chats/answer.impl.js +130 -0
  117. package/dist/src/storages/chats/answer.impl.js.map +1 -0
  118. package/dist/src/storages/chats/answer.js +14 -0
  119. package/dist/src/storages/chats/answer.js.map +1 -0
  120. package/dist/src/storages/chats/chat.d.ts +39 -0
  121. package/dist/src/storages/chats/chat.d.ts.map +1 -0
  122. package/dist/src/storages/chats/chat.impl.d.ts +24 -0
  123. package/dist/src/storages/chats/chat.impl.d.ts.map +1 -0
  124. package/dist/src/storages/chats/chat.impl.js +98 -0
  125. package/dist/src/storages/chats/chat.impl.js.map +1 -0
  126. package/dist/src/storages/chats/chat.js +12 -0
  127. package/dist/src/storages/chats/chat.js.map +1 -0
  128. package/dist/src/storages/chats/chats.d.ts +40 -0
  129. package/dist/src/storages/chats/chats.d.ts.map +1 -0
  130. package/dist/src/storages/chats/chats.impl.d.ts +18 -0
  131. package/dist/src/storages/chats/chats.impl.d.ts.map +1 -0
  132. package/dist/src/storages/chats/chats.impl.js +102 -0
  133. package/dist/src/storages/chats/chats.impl.js.map +1 -0
  134. package/dist/src/storages/chats/chats.js +16 -0
  135. package/dist/src/storages/chats/chats.js.map +1 -0
  136. package/dist/src/storages/files/file.d.ts +31 -0
  137. package/dist/src/storages/files/file.d.ts.map +1 -0
  138. package/dist/src/storages/files/file.impl.d.ts +21 -0
  139. package/dist/src/storages/files/file.impl.d.ts.map +1 -0
  140. package/dist/src/storages/files/file.impl.js +64 -0
  141. package/dist/src/storages/files/file.impl.js.map +1 -0
  142. package/dist/src/storages/files/file.js +11 -0
  143. package/dist/src/storages/files/file.js.map +1 -0
  144. package/dist/src/storages/files/files.d.ts +34 -0
  145. package/dist/src/storages/files/files.d.ts.map +1 -0
  146. package/dist/src/storages/files/files.impl.d.ts +22 -0
  147. package/dist/src/storages/files/files.impl.d.ts.map +1 -0
  148. package/dist/src/storages/files/files.impl.js +140 -0
  149. package/dist/src/storages/files/files.impl.js.map +1 -0
  150. package/dist/src/storages/files/files.js +20 -0
  151. package/dist/src/storages/files/files.js.map +1 -0
  152. package/dist/src/storages/files/filesPage.d.ts +28 -0
  153. package/dist/src/storages/files/filesPage.d.ts.map +1 -0
  154. package/dist/src/storages/files/filesPage.impl.d.ts +15 -0
  155. package/dist/src/storages/files/filesPage.impl.d.ts.map +1 -0
  156. package/dist/src/storages/files/filesPage.impl.js +38 -0
  157. package/dist/src/storages/files/filesPage.impl.js.map +1 -0
  158. package/dist/src/storages/files/filesPage.js +10 -0
  159. package/dist/src/storages/files/filesPage.js.map +1 -0
  160. package/dist/src/storages/groups/groups.d.ts +91 -0
  161. package/dist/src/storages/groups/groups.d.ts.map +1 -0
  162. package/dist/src/storages/groups/groups.impl.d.ts +61 -0
  163. package/dist/src/storages/groups/groups.impl.d.ts.map +1 -0
  164. package/dist/src/storages/groups/groups.impl.js +293 -0
  165. package/dist/src/storages/groups/groups.impl.js.map +1 -0
  166. package/dist/src/storages/groups/groups.js +26 -0
  167. package/dist/src/storages/groups/groups.js.map +1 -0
  168. package/dist/src/storages/organizations/organization.d.ts +54 -0
  169. package/dist/src/storages/organizations/organization.d.ts.map +1 -0
  170. package/dist/src/storages/organizations/organization.impl.d.ts +32 -0
  171. package/dist/src/storages/organizations/organization.impl.d.ts.map +1 -0
  172. package/dist/src/storages/organizations/organization.impl.js +120 -0
  173. package/dist/src/storages/organizations/organization.impl.js.map +1 -0
  174. package/dist/src/storages/organizations/organization.js +18 -0
  175. package/dist/src/storages/organizations/organization.js.map +1 -0
  176. package/dist/src/storages/organizations/organizations.d.ts +46 -0
  177. package/dist/src/storages/organizations/organizations.d.ts.map +1 -0
  178. package/dist/src/storages/organizations/organizations.impl.d.ts +38 -0
  179. package/dist/src/storages/organizations/organizations.impl.d.ts.map +1 -0
  180. package/dist/src/storages/organizations/organizations.impl.js +151 -0
  181. package/dist/src/storages/organizations/organizations.impl.js.map +1 -0
  182. package/dist/src/storages/organizations/organizations.js +20 -0
  183. package/dist/src/storages/organizations/organizations.js.map +1 -0
  184. package/dist/src/storages/user/userProfile.d.ts +32 -0
  185. package/dist/src/storages/user/userProfile.d.ts.map +1 -0
  186. package/dist/src/storages/user/userProfile.impl.d.ts +13 -0
  187. package/dist/src/storages/user/userProfile.impl.d.ts.map +1 -0
  188. package/dist/src/storages/user/userProfile.impl.js +51 -0
  189. package/dist/src/storages/user/userProfile.impl.js.map +1 -0
  190. package/dist/src/storages/user/userProfile.js +12 -0
  191. package/dist/src/storages/user/userProfile.js.map +1 -0
  192. package/dist/src/storages/workspaces/workspace.d.ts +44 -0
  193. package/dist/src/storages/workspaces/workspace.d.ts.map +1 -0
  194. package/dist/src/storages/workspaces/workspace.impl.d.ts +23 -0
  195. package/dist/src/storages/workspaces/workspace.impl.d.ts.map +1 -0
  196. package/dist/src/storages/workspaces/workspace.impl.js +98 -0
  197. package/dist/src/storages/workspaces/workspace.impl.js.map +1 -0
  198. package/dist/src/storages/workspaces/workspace.js +18 -0
  199. package/dist/src/storages/workspaces/workspace.js.map +1 -0
  200. package/dist/src/storages/workspaces/workspaces.d.ts +47 -0
  201. package/dist/src/storages/workspaces/workspaces.d.ts.map +1 -0
  202. package/dist/src/storages/workspaces/workspaces.impl.d.ts +33 -0
  203. package/dist/src/storages/workspaces/workspaces.impl.d.ts.map +1 -0
  204. package/dist/src/storages/workspaces/workspaces.impl.js +157 -0
  205. package/dist/src/storages/workspaces/workspaces.impl.js.map +1 -0
  206. package/dist/src/storages/workspaces/workspaces.js +19 -0
  207. package/dist/src/storages/workspaces/workspaces.js.map +1 -0
  208. package/dist/src/unitTest.d.ts +12 -0
  209. package/dist/src/unitTest.d.ts.map +1 -0
  210. package/dist/src/unitTest.js +44 -0
  211. package/dist/src/unitTest.js.map +1 -0
  212. package/index.d.ts +1 -0
  213. package/index.js +1 -0
  214. package/package.json +43 -4
  215. package/src/appBuilder.ts +6 -6
  216. package/src/commands/startCommandHandler.ts +2 -2
  217. package/src/context.ts +5 -4
  218. package/src/credentials.ts +29 -7
  219. package/src/{appSdk.ts → dataIslandApp.ts} +7 -7
  220. package/src/disposable.ts +20 -8
  221. package/src/dto/accessGroupResponse.ts +35 -0
  222. package/src/dto/chatResponse.ts +103 -0
  223. package/src/dto/userInfoResponse.ts +15 -3
  224. package/src/dto/workspacesResponse.ts +49 -0
  225. package/src/events.ts +13 -13
  226. package/src/index.ts +41 -20
  227. package/src/internal/app.impl.ts +28 -31
  228. package/src/internal/appBuilder.impl.ts +16 -16
  229. package/src/internal/createApp.impl.ts +5 -5
  230. package/src/internal/registry.ts +54 -6
  231. package/src/services/commandService.ts +3 -3
  232. package/src/services/credentialService.ts +3 -3
  233. package/src/services/middlewareService.ts +4 -4
  234. package/src/services/organizationService.ts +18 -116
  235. package/src/services/requestBuilder.ts +40 -15
  236. package/src/services/responseUtils.ts +32 -0
  237. package/src/services/rpcService.ts +28 -11
  238. package/src/services/service.ts +10 -8
  239. package/src/services/userProfileService.ts +18 -66
  240. package/src/storages/chats/answer.impl.ts +186 -0
  241. package/src/storages/chats/answer.ts +55 -0
  242. package/src/storages/chats/chat.impl.ts +126 -0
  243. package/src/storages/chats/chat.ts +49 -0
  244. package/src/storages/chats/chats.impl.ts +142 -0
  245. package/src/storages/chats/chats.ts +47 -0
  246. package/src/storages/files/file.impl.ts +87 -0
  247. package/src/storages/files/file.ts +40 -0
  248. package/src/storages/files/files.impl.ts +191 -0
  249. package/src/storages/files/files.ts +39 -0
  250. package/src/storages/files/filesPage.impl.ts +37 -0
  251. package/src/storages/files/filesPage.ts +33 -0
  252. package/src/storages/groups/groups.impl.ts +386 -0
  253. package/src/storages/groups/groups.ts +106 -0
  254. package/src/storages/organizations/organization.impl.ts +163 -0
  255. package/src/storages/organizations/organization.ts +67 -0
  256. package/src/storages/organizations/organizations.impl.ts +197 -0
  257. package/src/storages/{organizations.ts → organizations/organizations.ts} +8 -28
  258. package/src/storages/user/userProfile.impl.ts +56 -0
  259. package/src/storages/{userProfile.ts → user/userProfile.ts} +2 -2
  260. package/src/storages/workspaces/workspace.impl.ts +129 -0
  261. package/src/storages/workspaces/workspace.ts +54 -0
  262. package/src/storages/workspaces/workspaces.impl.ts +212 -0
  263. package/src/storages/workspaces/workspaces.ts +53 -0
  264. package/src/unitTest.ts +12 -1
  265. package/.browserslistrc +0 -5
  266. package/.editorconfig +0 -22
  267. package/.eslintrc.json +0 -44
  268. package/.github/workflows/publish-npm.yml +0 -28
  269. package/.prettierignore +0 -1
  270. package/.prettierrc +0 -11
  271. package/.yarnrc +0 -2
  272. package/babel.config.js +0 -6
  273. package/jest.config.ts +0 -199
  274. package/jest.setup.ts +0 -2
  275. package/src/services/organizationImpl.ts +0 -51
  276. package/src/services/organizationsImpl.ts +0 -55
  277. package/src/types.ts +0 -86
  278. package/test/commands.test.ts +0 -24
  279. package/test/disposable.test.ts +0 -39
  280. package/test/events.test.ts +0 -151
  281. package/test/index.test.ts +0 -163
  282. package/test/registry.test.ts +0 -44
  283. package/test/services.test.ts +0 -56
  284. package/test/setup.ts +0 -2
  285. package/test/unitTest.test.ts +0 -21
  286. package/tsconfig.json +0 -31
@@ -1,55 +0,0 @@
1
- import {
2
- Organization,
3
- OrganizationEvent,
4
- OrganizationId,
5
- Organizations
6
- } from '../storages/organizations'
7
- import { OrganizationImpl } from './organizationImpl'
8
- import { OrganizationService } from './organizationService'
9
-
10
- export class OrganizationsImpl extends Organizations {
11
- constructor(public readonly service: OrganizationService) {
12
- super()
13
- }
14
-
15
- public organizations: OrganizationImpl[] = []
16
- public currentOrganizationId?: OrganizationId
17
-
18
- get collection(): readonly Organization[] {
19
- return this.organizations
20
- }
21
-
22
- get current(): OrganizationId {
23
- return <OrganizationId>this.currentOrganizationId
24
- }
25
-
26
- set current(value: OrganizationId) {
27
- if (this.currentOrganizationId !== value) {
28
- this.currentOrganizationId = value
29
- this.dispatch({
30
- type: OrganizationEvent.CURRENT_CHANGED,
31
- data: this
32
- })
33
- }
34
- }
35
-
36
- get(id: OrganizationId): Organization {
37
- return <Organization>this.tryGet(id)
38
- }
39
-
40
- tryGet(id: OrganizationId): Organization | undefined {
41
- return this.organizations.find(organization => organization.id === id)
42
- }
43
-
44
- contains(id: OrganizationId): boolean {
45
- return this.organizations.some(organization => organization.id === id)
46
- }
47
-
48
- async create(name: string, description: string): Promise<Organization> {
49
- return this.service.createOrganization(name, description)
50
- }
51
-
52
- delete(id: string): Promise<void> {
53
- return this.service.deleteOrganization(id)
54
- }
55
- }
package/src/types.ts DELETED
@@ -1,86 +0,0 @@
1
- import { type Event } from './events'
2
- import { type Disposable } from './disposable'
3
- import {
4
- Organization,
5
- OrganizationEvent,
6
- OrganizationId
7
- } from './storages/organizations'
8
-
9
- export type WorkspaceId = string
10
- export type ChatId = string
11
- export type FileId = string
12
-
13
- export enum FileEvent {
14
- ADDED,
15
- REMOVED,
16
- UPDATED
17
- }
18
-
19
- export enum ChatEvent {
20
- ADDED,
21
- REMOVED,
22
- UPDATED
23
- }
24
-
25
- export enum ChatMessageEvent {
26
- ADDED,
27
- REMOVED,
28
- UPDATED
29
- }
30
-
31
- export interface File {
32
- id: FileId
33
- name: string
34
-
35
- download: () => Promise<void>
36
- }
37
-
38
- export interface Files {
39
- files: File[]
40
- on: (callback: (event: Event<FileEvent, File>) => void) => Disposable
41
- fetch: () => Promise<void>
42
- upload: (path: string, name: string) => Promise<File>
43
- }
44
-
45
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
46
- export interface ChatMessage {}
47
-
48
- export interface Chat {
49
- id: ChatId
50
- name: string
51
- on: (
52
- callback: (event: Event<ChatMessageEvent, ChatMessage>) => void
53
- ) => Disposable
54
- messages: ChatMessage[]
55
- fetch: () => Promise<void>
56
- subscribe: () => void
57
- unsubscribe: () => void
58
- }
59
-
60
- export interface Chats {
61
- chats: Chat[]
62
- newChat: (name: string) => Promise<Chat>
63
- on: (callback: (event: Event<ChatEvent, Chat>) => void) => Disposable
64
- fetch: () => Promise<void>
65
- }
66
-
67
- export interface Invites {
68
- invite: (email: string) => Promise<void>
69
- accept: (id: OrganizationId) => Promise<void>
70
- decline: (id: OrganizationId) => Promise<void>
71
- on: (
72
- callback: (organization: Event<OrganizationEvent, Organization>) => void
73
- ) => Disposable
74
- }
75
-
76
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
77
- export interface Statistics {}
78
-
79
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
80
- export interface Workspace {}
81
-
82
- export interface Workspaces {
83
- newWorkspace: (name: string) => Promise<Workspace>
84
-
85
- delete: (id: WorkspaceId) => Promise<void>
86
- }
@@ -1,24 +0,0 @@
1
- import { Command, CommandHandler } from '../src/services/commandService'
2
- import { appSdk } from '../src'
3
- import { UnitTest, AppSdkUnitTest } from '../src/unitTest'
4
-
5
- class Cmd extends Command {
6
- constructor(public readonly name: string = 'test') {
7
- super()
8
- }
9
- }
10
-
11
- class CmdHandler extends CommandHandler<Cmd> {
12
- async execute(message: Cmd): Promise<void> {
13
- expect(message.name).toBe('test-command')
14
- }
15
- }
16
-
17
- test('Commands test', async () => {
18
- await AppSdkUnitTest.test(UnitTest.DEFAULT, async () => {
19
- const app = await appSdk('test-commands', async builder => {
20
- builder.registerCommand(Cmd, context => new CmdHandler(context))
21
- })
22
- expect(app.context.execute(new Cmd('test-command'))).toBeDefined()
23
- })
24
- })
@@ -1,39 +0,0 @@
1
- import { DisposableContainer } from '../src'
2
-
3
- test('DisposableContainer', () => {
4
- const disposable = new DisposableContainer()
5
- expect(disposable.isDisposed).toBe(false)
6
- expect(disposable.lifetime.isDisposed).toBe(false)
7
- disposable.dispose()
8
- expect(disposable.isDisposed).toBe(true)
9
- expect(disposable.lifetime.isDisposed).toBe(true)
10
- })
11
-
12
- test('DisposableContainer, dispose order', () => {
13
- const indexes: number[] = []
14
- const disposable = new DisposableContainer()
15
- disposable.addCallback(() => {
16
- indexes.push(1)
17
- })
18
-
19
- const nested = disposable.defineNested()
20
- nested.addCallback(() => {
21
- indexes.push(2)
22
- })
23
-
24
- nested.lifetime.addCallback(() => {
25
- indexes.push(3)
26
- })
27
-
28
- nested.lifetime.defineNested().addCallback(() => {
29
- indexes.push(4)
30
- })
31
-
32
- nested.lifetime.defineNested().addCallback(() => {
33
- indexes.push(5)
34
- })
35
-
36
- disposable.dispose()
37
-
38
- expect(indexes).toEqual([5, 4, 3, 2, 1])
39
- })
@@ -1,151 +0,0 @@
1
- import { EventDispatcher } from '../src'
2
-
3
- test('Events, test general', () => {
4
- enum ET {
5
- A,
6
- B
7
- }
8
-
9
- const dispatch = new EventDispatcher<ET, number>()
10
-
11
- let a1 = 0
12
- let a2 = 0
13
- let b1 = 0
14
- let b2 = 0
15
-
16
- const aDisposable1 = dispatch.subscribe((evt: { data: number }) => {
17
- a1 += evt.data
18
- }, ET.A)
19
- const aDisposable2 = dispatch.subscribe(evt => {
20
- if (evt.type === ET.A) a2 += evt.data
21
- })
22
- const bDisposable1 = dispatch.subscribe(evt => {
23
- b1 += evt.data
24
- }, ET.B)
25
- const bDisposable2 = dispatch.subscribe(evt => {
26
- if (evt.type === ET.B) b2 += evt.data
27
- })
28
-
29
- dispatch.dispatch({
30
- type: ET.A,
31
- data: 1
32
- })
33
-
34
- expect(a1).toBe(1)
35
- expect(a2).toBe(1)
36
- expect(b1).toBe(0)
37
- expect(b2).toBe(0)
38
-
39
- aDisposable1.dispose()
40
-
41
- dispatch.dispatch({
42
- type: ET.A,
43
- data: 2
44
- })
45
- dispatch.dispatch({
46
- type: ET.B,
47
- data: 3
48
- })
49
-
50
- expect(a1).toBe(1)
51
- expect(a2).toBe(3)
52
- expect(b1).toBe(3)
53
- expect(b2).toBe(3)
54
-
55
- aDisposable2.dispose()
56
-
57
- dispatch.dispatch({
58
- type: ET.A,
59
- data: 3
60
- })
61
-
62
- expect(a1).toBe(1)
63
- expect(a2).toBe(3)
64
- expect(b1).toBe(3)
65
- expect(b2).toBe(3)
66
-
67
- bDisposable1.dispose()
68
- bDisposable2.dispose()
69
-
70
- dispatch.dispatch({
71
- type: ET.B,
72
- data: 4
73
- })
74
-
75
- expect(a1).toBe(1)
76
- expect(a2).toBe(3)
77
- expect(b1).toBe(3)
78
- expect(b2).toBe(3)
79
- })
80
-
81
- test('Events, test this', () => {
82
- enum ET {
83
- A,
84
- B
85
- }
86
-
87
- const dispatch = new EventDispatcher<ET, number>()
88
-
89
- const a = {
90
- value: 0
91
- }
92
- const b = {
93
- value: 0
94
- }
95
-
96
- const aDisposable = dispatch.subscribe((evt: { data: number }) => {
97
- a.value += evt.data
98
- }, ET.A)
99
- const bDisposable = dispatch.subscribe((evt: { data: number }) => {
100
- b.value += evt.data
101
- }, ET.B)
102
-
103
- dispatch.dispatch({
104
- type: ET.A,
105
- data: 1
106
- })
107
- dispatch.dispatch({
108
- type: ET.B,
109
- data: 2
110
- })
111
-
112
- expect(a.value).toBe(1)
113
- expect(b.value).toBe(2)
114
-
115
- aDisposable.dispose()
116
- bDisposable.dispose()
117
-
118
- dispatch.dispatch({
119
- type: ET.A,
120
- data: 3
121
- })
122
- dispatch.dispatch({
123
- type: ET.B,
124
- data: 4
125
- })
126
-
127
- expect(a.value).toBe(1)
128
- expect(b.value).toBe(2)
129
- })
130
-
131
- test('Events, test unsubscribe', () => {
132
- const dispatch = new EventDispatcher<unknown, number>()
133
-
134
- let index = 0
135
-
136
- dispatch.subscribe(evt => {
137
- index += evt.data
138
- evt.unsubscribe()
139
- })
140
- dispatch.subscribe(evt => {
141
- index += evt.data
142
- })
143
-
144
- dispatch.dispatch({ data: 1 })
145
-
146
- expect(index).toBe(2)
147
-
148
- dispatch.dispatch({ data: 1 })
149
-
150
- expect(index).toBe(3)
151
- })
@@ -1,163 +0,0 @@
1
- import { version } from '../package.json'
2
- import {
3
- AppSdk,
4
- BasicCredential,
5
- appSdk,
6
- SDK_VERSION,
7
- DEFAULT_NAME,
8
- BearerCredential
9
- } from '../src'
10
- import { MiddlewareService } from '../src/services/middlewareService'
11
- import { CredentialService } from '../src/services/credentialService'
12
- import { RpcService } from '../src/services/rpcService'
13
- import { AppBuilder } from '../src/appBuilder'
14
- import { UnitTest, AppSdkUnitTest } from '../src/unitTest'
15
- import { HOST, TOKEN } from './setup'
16
- import { OrganizationImpl } from '../src/services/organizationImpl'
17
-
18
- test('SDK_VERSION', () => {
19
- expect(SDK_VERSION).toBe(version)
20
- })
21
-
22
- test('Default SDK', async () => {
23
- // default
24
- const app = await appSdk(DEFAULT_NAME, async (builder: AppBuilder) => {
25
- builder.useHost(HOST)
26
- builder.useCredential(new BearerCredential(TOKEN))
27
- })
28
- expect(app).not.toBeUndefined()
29
- })
30
-
31
- test('Create and delete organization', async () => {
32
- const randomName = `org-test-${Math.random().toString(16)}`
33
- const app = await appSdk(randomName, async builder => {
34
- builder.useHost(HOST)
35
- builder.useCredential(new BearerCredential(TOKEN))
36
- })
37
-
38
- const initLength = app.organizations.collection.length
39
-
40
- const org = await app.organizations.create(
41
- randomName,
42
- 'this is a unitTest description'
43
- )
44
-
45
- // check organization
46
- expect(org).not.toBeUndefined()
47
- expect(org).not.toBeNull()
48
- expect(org).toBeInstanceOf(OrganizationImpl)
49
-
50
- expect(org.id).not.toBeUndefined()
51
- expect(org.id).not.toBeNull()
52
- expect(org.id.trim()).not.toBe('')
53
-
54
- // check name
55
- expect(org.name).not.toBeUndefined()
56
- expect(org.name).not.toBeNull()
57
- expect(org.name.trim()).not.toBe('')
58
-
59
- // check description
60
- expect(org.description).not.toBeUndefined()
61
- expect(org.description).not.toBeNull()
62
- expect(org.description.trim()).not.toBe('')
63
-
64
- // check organizations
65
- expect(app.organizations.get(org.id)).toBe(org)
66
- expect(app.organizations.collection.length).toBe(initLength + 1)
67
-
68
- await expect(app.organizations.delete(org.id)).resolves.not.toThrow()
69
- expect((<OrganizationImpl>org).isDisposed).toBe(true)
70
- expect(app.organizations.collection.length).toBe(initLength)
71
- expect(app.organizations.tryGet(org.id)).toBeUndefined()
72
- })
73
-
74
- test('SDK, middleware', async () => {
75
- await AppSdkUnitTest.test(UnitTest.DEFAULT, async () => {
76
- const app = await appSdk('test-settings', async (builder: AppBuilder) => {
77
- builder.useHost('https://test.com')
78
- builder.useAutomaticDataCollectionEnabled(false)
79
- builder.useCredential(new BasicCredential('email', 'password'))
80
- builder.registerMiddleware(async (req, next) => {
81
- req.headers.set('X-Test', 'test')
82
- return await next(req)
83
- })
84
- })
85
- expect(app.name).toBe('test-settings')
86
- expect(app.host).toBe('https://test.com')
87
- expect(app.automaticDataCollectionEnabled).toBe(false)
88
- })
89
- })
90
-
91
- test('SDK, services', async () => {
92
- await AppSdkUnitTest.test(UnitTest.DEFAULT, async () => {
93
- const app = await appSdk('test-sdk')
94
- const middlewareService = app.resolve(MiddlewareService)
95
- expect(middlewareService).not.toBeUndefined()
96
- expect(app.resolve(MiddlewareService)).toBe(middlewareService)
97
- expect(app.resolve(CredentialService)).not.toBeUndefined()
98
- expect(app.resolve(RpcService)).not.toBeUndefined()
99
- expect(app.resolve(RpcService)).toBeInstanceOf(RpcService)
100
- })
101
- })
102
-
103
- test('SDK, middleware', async () => {
104
- await AppSdkUnitTest.test(UnitTest.DEFAULT, async () => {
105
- const app = await appSdk('test-middleware')
106
- const middlewareService = app.resolve(MiddlewareService)
107
- expect(middlewareService).not.toBeUndefined()
108
- expect(app.resolve(MiddlewareService)).toBe(middlewareService)
109
- expect(app.resolve(CredentialService)).not.toBeUndefined()
110
-
111
- const response = await middlewareService?.process(
112
- new Request('http://localhost:8080'),
113
- async (req: Request): Promise<Response> => {
114
- const headerXTest = req.headers.get('Custom-Test-Header')
115
- expect(headerXTest).toBeNull()
116
- return new Response('', { status: 200 })
117
- }
118
- )
119
- expect(response).not.toBeUndefined()
120
- expect(response?.status).toBe(200)
121
-
122
- middlewareService?.useMiddleware(async (req, next) => {
123
- req.headers.set('X-Test', 'test-value')
124
- return await next(req)
125
- })
126
-
127
- const response2 = await middlewareService?.process(
128
- new Request('https://localhost:8080'),
129
- async (req: Request): Promise<Response> => {
130
- expect(req.headers.get('X-Test')).toBe('test-value')
131
- return new Response('', { status: 400 })
132
- }
133
- )
134
- expect(response2).not.toBeUndefined()
135
- expect(response2?.status).toBe(400)
136
- })
137
- })
138
-
139
- test('SDK, it is impossible to setup the same application', async () => {
140
- await AppSdkUnitTest.test(UnitTest.DEFAULT, async () => {
141
- // this test is not stable if you run all tests at once
142
- // because the app is cached all app instances
143
- // we use a random identifier every time
144
- const testId = Math.random().toString(16)
145
- const promise = appSdk(`test-setup-${testId}`).then(() => {})
146
- await expect(
147
- appSdk(`test-setup-${testId}`, async () => {})
148
- ).rejects.toThrow()
149
- await promise
150
- })
151
- })
152
-
153
- test('SDK, setup and get this app', async () => {
154
- await AppSdkUnitTest.test(UnitTest.DEFAULT, async () => {
155
- // this test is not stable if you run all tests at once
156
- // because the app is cached all app instances
157
- // we use a random identifier every time
158
- const testId = Math.random().toString(16)
159
- const promise = appSdk(`test-get-${testId}`).then(() => {})
160
- await expect(appSdk(`test-get-${testId}`)).resolves.toBeInstanceOf(AppSdk)
161
- await promise
162
- })
163
- })
@@ -1,44 +0,0 @@
1
- import { Registry } from '../src/internal/registry'
2
-
3
- class TestClass {
4
- constructor(public readonly value: string) {}
5
- }
6
-
7
- test('Registry, test factory', () => {
8
- const registry = new Registry()
9
-
10
- const item = new TestClass('test1')
11
- registry.map(TestClass).asValue(item)
12
- expect(registry.get(TestClass)).toBe(item)
13
-
14
- let index = 0
15
-
16
- registry.map(TestClass).asFactory(() => {
17
- index++
18
- return new TestClass(`test_${index}`)
19
- })
20
-
21
- expect(registry.get(TestClass)).toBeInstanceOf(TestClass)
22
- expect(registry.get(TestClass)).not.toBe(item)
23
- expect(registry.get(TestClass)).not.toBe(registry.get(TestClass))
24
-
25
- expect(registry.get(TestClass)?.value).toBe('test_5')
26
- })
27
-
28
- test('Registry, test value', () => {
29
- const registry = new Registry()
30
-
31
- const item = new TestClass('test1')
32
- registry.map(TestClass).asValue(item)
33
- expect(registry.get(TestClass)).toBeInstanceOf(TestClass)
34
- expect(registry.get(TestClass)).toBe(item)
35
- })
36
-
37
- test('Registry, test singleton', () => {
38
- const registry = new Registry()
39
-
40
- registry.map(TestClass).asSingleton(() => new TestClass('test1'))
41
- const singleton = registry.get(TestClass)
42
- expect(singleton).toBeInstanceOf(TestClass)
43
- expect(singleton).toBe(registry.get(TestClass))
44
- })
@@ -1,56 +0,0 @@
1
- import { appSdk, BasicCredential, DefaultCredential } from '../src'
2
- import { CredentialService } from '../src/services/credentialService'
3
- import { MiddlewareService } from '../src/services/middlewareService'
4
- import { UnitTest, AppSdkUnitTest } from '../src/unitTest'
5
-
6
- test('CredentialService', async () => {
7
- await AppSdkUnitTest.test(UnitTest.DEFAULT, async () => {
8
- const app = await appSdk('test-services', async builder => {
9
- builder.env.unitTest = UnitTest.DO_NOT_START
10
- })
11
- const credentialService = app.resolve(CredentialService)
12
- expect(credentialService).not.toBeUndefined()
13
- expect(app.resolve(CredentialService)).toBe(credentialService)
14
- expect(app.resolve(CredentialService)).toBeInstanceOf(CredentialService)
15
- expect(app.credential).not.toBeUndefined()
16
-
17
- const credential = new BasicCredential('email', 'password')
18
- app.credential = credential
19
- expect(app.credential).toBe(credential)
20
- expect(credentialService?.credential).toBe(credential)
21
-
22
- const middleware = app.resolve(MiddlewareService) as MiddlewareService
23
- const emailPasswordDisposable = middleware.useMiddleware(
24
- async (req, next) => {
25
- expect(req.headers.get('Authorization')).toBe('Basic email:password')
26
- await next(req)
27
- }
28
- )
29
- expect(emailPasswordDisposable).not.toBeUndefined()
30
- await middleware.process(
31
- new Request('https://localhost:8080'),
32
- async () => {
33
- return new Response('', { status: 200 })
34
- }
35
- )
36
- emailPasswordDisposable?.dispose()
37
-
38
- const credential2 = new DefaultCredential()
39
- app.credential = credential2
40
- expect(app.credential).toBe(credential2)
41
- expect(credentialService?.credential).toBe(credential2)
42
-
43
- const defaultDisposable = middleware.useMiddleware(async (req, next) => {
44
- expect(req.headers.get('Authorization')).toBeNull()
45
- await next(req)
46
- })
47
- expect(defaultDisposable).not.toBeUndefined()
48
- await middleware.process(
49
- new Request('https://localhost:8080'),
50
- async () => {
51
- return new Response('', { status: 200 })
52
- }
53
- )
54
- defaultDisposable?.dispose()
55
- })
56
- })
package/test/setup.ts DELETED
@@ -1,2 +0,0 @@
1
- export const HOST = <string>process.env.HOST
2
- export const TOKEN = <string>process.env.TOKEN
@@ -1,21 +0,0 @@
1
- import { AppSdkUnitTest, UnitTest } from '../src/unitTest'
2
-
3
- test('SDK, unitTest', async () => {
4
- expect(AppSdkUnitTest.current).toBe(UnitTest.DO_NOTHING)
5
- expect(
6
- await AppSdkUnitTest.test(UnitTest.DO_NOT_PRINT_INITIALIZED_LOG, () => {
7
- expect(AppSdkUnitTest.current).toBe(UnitTest.DO_NOT_PRINT_INITIALIZED_LOG)
8
- })
9
- )
10
- expect(
11
- await AppSdkUnitTest.test(
12
- UnitTest.DO_NOT_PRINT_INITIALIZED_LOG,
13
- async () => {
14
- expect(AppSdkUnitTest.current).toBe(
15
- UnitTest.DO_NOT_PRINT_INITIALIZED_LOG
16
- )
17
- }
18
- )
19
- )
20
- expect(AppSdkUnitTest.current).toBe(UnitTest.DO_NOTHING)
21
- })
package/tsconfig.json DELETED
@@ -1,31 +0,0 @@
1
- {
2
- "compileOnSave": false,
3
- "compilerOptions": {
4
- "target": "ES2015",
5
- "module": "amd",
6
- "moduleResolution": "node",
7
- "typeRoots": [
8
- "node_modules/@types"
9
- ],
10
- "resolveJsonModule": true,
11
- "declaration": true,
12
- "sourceMap": true,
13
- "importHelpers": true,
14
- "esModuleInterop": true,
15
- "forceConsistentCasingInFileNames": true,
16
- "strict": true,
17
- "skipLibCheck": true,
18
- "outDir": "dist",
19
- "outFile": "dist/dataisland-sdk.js",
20
- "rootDir": ".",
21
- "allowJs": true,
22
- "checkJs": true,
23
- "downlevelIteration": true
24
- },
25
- "exclude": [
26
- "dist/**/*"
27
- ],
28
- "include": [
29
- "src/**/*"
30
- ]
31
- }