@hamak/ui-remote-resource-impl 0.4.19

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 (41) hide show
  1. package/dist/es2015/index.js +33 -0
  2. package/dist/es2015/middleware/entity-middleware.js +209 -0
  3. package/dist/es2015/middleware/entity-sync-middleware.js +36 -0
  4. package/dist/es2015/middleware/resource-middleware.js +111 -0
  5. package/dist/es2015/middleware/sync-middleware.js +85 -0
  6. package/dist/es2015/plugin/resource-plugin-factory.js +151 -0
  7. package/dist/es2015/providers/mock-resource-provider.js +215 -0
  8. package/dist/es2015/providers/rest-resource-provider.js +140 -0
  9. package/dist/es2015/registry/entity-registry.js +50 -0
  10. package/dist/es2015/registry/resource-registry.js +68 -0
  11. package/dist/index.d.ts +18 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +16 -0
  14. package/dist/middleware/entity-middleware.d.ts +13 -0
  15. package/dist/middleware/entity-middleware.d.ts.map +1 -0
  16. package/dist/middleware/entity-middleware.js +221 -0
  17. package/dist/middleware/entity-sync-middleware.d.ts +7 -0
  18. package/dist/middleware/entity-sync-middleware.d.ts.map +1 -0
  19. package/dist/middleware/entity-sync-middleware.js +31 -0
  20. package/dist/middleware/resource-middleware.d.ts +13 -0
  21. package/dist/middleware/resource-middleware.d.ts.map +1 -0
  22. package/dist/middleware/resource-middleware.js +97 -0
  23. package/dist/middleware/sync-middleware.d.ts +12 -0
  24. package/dist/middleware/sync-middleware.d.ts.map +1 -0
  25. package/dist/middleware/sync-middleware.js +80 -0
  26. package/dist/plugin/resource-plugin-factory.d.ts +31 -0
  27. package/dist/plugin/resource-plugin-factory.d.ts.map +1 -0
  28. package/dist/plugin/resource-plugin-factory.js +131 -0
  29. package/dist/providers/mock-resource-provider.d.ts +147 -0
  30. package/dist/providers/mock-resource-provider.d.ts.map +1 -0
  31. package/dist/providers/mock-resource-provider.js +196 -0
  32. package/dist/providers/rest-resource-provider.d.ts +51 -0
  33. package/dist/providers/rest-resource-provider.d.ts.map +1 -0
  34. package/dist/providers/rest-resource-provider.js +117 -0
  35. package/dist/registry/entity-registry.d.ts +54 -0
  36. package/dist/registry/entity-registry.d.ts.map +1 -0
  37. package/dist/registry/entity-registry.js +46 -0
  38. package/dist/registry/resource-registry.d.ts +80 -0
  39. package/dist/registry/resource-registry.d.ts.map +1 -0
  40. package/dist/registry/resource-registry.js +64 -0
  41. package/package.json +57 -0
@@ -0,0 +1,80 @@
1
+ import type { IResourceProvider } from '@hamak/ui-remote-resource-spi';
2
+ import type { ResourceEndpointDefinition } from '@hamak/ui-remote-resource-spi';
3
+ /**
4
+ * Internal registry interface with write operations
5
+ */
6
+ export interface IResourceRegistryInternal {
7
+ /**
8
+ * Register a resource endpoint
9
+ */
10
+ registerEndpoint(definition: ResourceEndpointDefinition): void;
11
+ /**
12
+ * Unregister a resource endpoint
13
+ */
14
+ unregisterEndpoint(id: string): void;
15
+ /**
16
+ * Get endpoint definition by ID
17
+ */
18
+ getEndpoint(id: string): ResourceEndpointDefinition | undefined;
19
+ /**
20
+ * Get all registered endpoints
21
+ */
22
+ getAllEndpoints(): ResourceEndpointDefinition[];
23
+ /**
24
+ * Check if endpoint exists
25
+ */
26
+ hasEndpoint(id: string): boolean;
27
+ /**
28
+ * Register a resource provider
29
+ */
30
+ registerProvider(provider: IResourceProvider): void;
31
+ /**
32
+ * Get provider by type
33
+ */
34
+ getProvider(type: string): IResourceProvider | undefined;
35
+ /**
36
+ * Get all registered providers
37
+ */
38
+ getAllProviders(): IResourceProvider[];
39
+ }
40
+ /**
41
+ * Resource registry implementation
42
+ * Manages resource endpoint definitions and providers
43
+ */
44
+ export declare class ResourceRegistry implements IResourceRegistryInternal {
45
+ private endpoints;
46
+ private providers;
47
+ /**
48
+ * Register a resource endpoint
49
+ */
50
+ registerEndpoint(definition: ResourceEndpointDefinition): void;
51
+ /**
52
+ * Unregister a resource endpoint
53
+ */
54
+ unregisterEndpoint(id: string): void;
55
+ /**
56
+ * Get endpoint definition by ID
57
+ */
58
+ getEndpoint(id: string): ResourceEndpointDefinition | undefined;
59
+ /**
60
+ * Get all registered endpoints
61
+ */
62
+ getAllEndpoints(): ResourceEndpointDefinition[];
63
+ /**
64
+ * Check if endpoint exists
65
+ */
66
+ hasEndpoint(id: string): boolean;
67
+ /**
68
+ * Register a resource provider
69
+ */
70
+ registerProvider(provider: IResourceProvider): void;
71
+ /**
72
+ * Get provider by type
73
+ */
74
+ getProvider(type: string): IResourceProvider | undefined;
75
+ /**
76
+ * Get all registered providers
77
+ */
78
+ getAllProviders(): IResourceProvider[];
79
+ }
80
+ //# sourceMappingURL=resource-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-registry.d.ts","sourceRoot":"","sources":["../../src/registry/resource-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS,CAAC;IAEhE;;OAEG;IACH,eAAe,IAAI,0BAA0B,EAAE,CAAC;IAEhD;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEpD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAEzD;;OAEG;IACH,eAAe,IAAI,iBAAiB,EAAE,CAAC;CACxC;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,OAAO,CAAC,SAAS,CAAsD;IACvE,OAAO,CAAC,SAAS,CAA6C;IAE9D;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,0BAA0B,GAAG,IAAI;IAU9D;;OAEG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS;IAI/D;;OAEG;IACH,eAAe,IAAI,0BAA0B,EAAE;IAI/C;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAUnD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIxD;;OAEG;IACH,eAAe,IAAI,iBAAiB,EAAE;CAGvC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Resource registry implementation
3
+ * Manages resource endpoint definitions and providers
4
+ */
5
+ export class ResourceRegistry {
6
+ constructor() {
7
+ this.endpoints = new Map();
8
+ this.providers = new Map();
9
+ }
10
+ /**
11
+ * Register a resource endpoint
12
+ */
13
+ registerEndpoint(definition) {
14
+ if (this.endpoints.has(definition.id)) {
15
+ console.warn(`Resource endpoint "${definition.id}" is already registered. Overwriting.`);
16
+ }
17
+ this.endpoints.set(definition.id, definition);
18
+ }
19
+ /**
20
+ * Unregister a resource endpoint
21
+ */
22
+ unregisterEndpoint(id) {
23
+ this.endpoints.delete(id);
24
+ }
25
+ /**
26
+ * Get endpoint definition by ID
27
+ */
28
+ getEndpoint(id) {
29
+ return this.endpoints.get(id);
30
+ }
31
+ /**
32
+ * Get all registered endpoints
33
+ */
34
+ getAllEndpoints() {
35
+ return Array.from(this.endpoints.values());
36
+ }
37
+ /**
38
+ * Check if endpoint exists
39
+ */
40
+ hasEndpoint(id) {
41
+ return this.endpoints.has(id);
42
+ }
43
+ /**
44
+ * Register a resource provider
45
+ */
46
+ registerProvider(provider) {
47
+ if (this.providers.has(provider.type)) {
48
+ console.warn(`Resource provider "${provider.type}" is already registered. Overwriting.`);
49
+ }
50
+ this.providers.set(provider.type, provider);
51
+ }
52
+ /**
53
+ * Get provider by type
54
+ */
55
+ getProvider(type) {
56
+ return this.providers.get(type);
57
+ }
58
+ /**
59
+ * Get all registered providers
60
+ */
61
+ getAllProviders() {
62
+ return Array.from(this.providers.values());
63
+ }
64
+ }
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@hamak/ui-remote-resource-impl",
3
+ "version": "0.4.19",
4
+ "private": false,
5
+ "type": "module",
6
+ "description": "Remote Resource Implementation - Redux middleware and providers for remote resource management",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "sideEffects": false,
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "https://github.com/amah/app-framework.git",
16
+ "directory": "packages/ui-remote-resource/ui-remote-resource-impl"
17
+ },
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "scripts": {
22
+ "build": "tsc -p tsconfig.json && tsc -p tsconfig.es2015.json",
23
+ "clean": "rm -rf dist",
24
+ "test": "vitest run",
25
+ "test:watch": "vitest",
26
+ "test:coverage": "vitest run --coverage"
27
+ },
28
+ "exports": {
29
+ ".": {
30
+ "types": "./dist/index.d.ts",
31
+ "import": "./dist/index.js",
32
+ "default": "./dist/index.js",
33
+ "legacy": "./dist/es2015/index.js"
34
+ },
35
+ "./es2015": {
36
+ "import": "./dist/es2015/index.js",
37
+ "default": "./dist/es2015/index.js"
38
+ }
39
+ },
40
+ "dependencies": {
41
+ "@hamak/shared-utils": "*",
42
+ "@hamak/ui-store-api": "*",
43
+ "@hamak/ui-remote-resource-api": "*",
44
+ "@hamak/ui-remote-resource-spi": "*",
45
+ "@hamak/microkernel-api": "*",
46
+ "axios": "^1.6.0",
47
+ "redux": "^5.0.1",
48
+ "uuid": "^9.0.0"
49
+ },
50
+ "devDependencies": {
51
+ "@types/node": "^20.0.0",
52
+ "@types/uuid": "^9.0.0",
53
+ "@vitest/coverage-v8": "^2.0.0",
54
+ "typescript": "~5.4.0",
55
+ "vitest": "^2.0.0"
56
+ }
57
+ }