digitaltwin-core 0.9.0 → 0.9.2

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 (50) hide show
  1. package/dist/auth/apisix_parser.d.ts +24 -0
  2. package/dist/auth/apisix_parser.d.ts.map +1 -1
  3. package/dist/auth/apisix_parser.js +28 -0
  4. package/dist/auth/apisix_parser.js.map +1 -1
  5. package/dist/auth/auth_config.d.ts +26 -0
  6. package/dist/auth/auth_config.d.ts.map +1 -1
  7. package/dist/auth/auth_config.js +35 -0
  8. package/dist/auth/auth_config.js.map +1 -1
  9. package/dist/components/assets_manager.d.ts +202 -9
  10. package/dist/components/assets_manager.d.ts.map +1 -1
  11. package/dist/components/assets_manager.js +552 -491
  12. package/dist/components/assets_manager.js.map +1 -1
  13. package/dist/components/types.d.ts +169 -19
  14. package/dist/components/types.d.ts.map +1 -1
  15. package/dist/components/types.js +6 -0
  16. package/dist/components/types.js.map +1 -1
  17. package/dist/database/adapters/knex_database_adapter.d.ts +10 -0
  18. package/dist/database/adapters/knex_database_adapter.d.ts.map +1 -1
  19. package/dist/database/adapters/knex_database_adapter.js +86 -0
  20. package/dist/database/adapters/knex_database_adapter.js.map +1 -1
  21. package/dist/database/database_adapter.d.ts +116 -7
  22. package/dist/database/database_adapter.d.ts.map +1 -1
  23. package/dist/database/database_adapter.js +41 -1
  24. package/dist/database/database_adapter.js.map +1 -1
  25. package/dist/engine/digital_twin_engine.d.ts +12 -0
  26. package/dist/engine/digital_twin_engine.d.ts.map +1 -1
  27. package/dist/engine/digital_twin_engine.js +4 -2
  28. package/dist/engine/digital_twin_engine.js.map +1 -1
  29. package/dist/engine/initializer.d.ts +8 -5
  30. package/dist/engine/initializer.d.ts.map +1 -1
  31. package/dist/engine/initializer.js +32 -13
  32. package/dist/engine/initializer.js.map +1 -1
  33. package/dist/index.d.ts +2 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/types/data_record.d.ts +8 -0
  38. package/dist/types/data_record.d.ts.map +1 -1
  39. package/dist/utils/http_responses.d.ts +155 -0
  40. package/dist/utils/http_responses.d.ts.map +1 -0
  41. package/dist/utils/http_responses.js +190 -0
  42. package/dist/utils/http_responses.js.map +1 -0
  43. package/dist/utils/index.d.ts +2 -0
  44. package/dist/utils/index.d.ts.map +1 -1
  45. package/dist/utils/index.js +1 -0
  46. package/dist/utils/index.js.map +1 -1
  47. package/dist/utils/map_to_data_record.d.ts.map +1 -1
  48. package/dist/utils/map_to_data_record.js +4 -1
  49. package/dist/utils/map_to_data_record.js.map +1 -1
  50. package/package.json +1 -2
@@ -0,0 +1,155 @@
1
+ /**
2
+ * @fileoverview HTTP response utilities for consistent API responses
3
+ *
4
+ * This module provides helper functions to create standardized DataResponse objects,
5
+ * reducing boilerplate code in component handlers and ensuring consistent API responses.
6
+ */
7
+ import type { DataResponse } from '../components/types.js';
8
+ /**
9
+ * HTTP status codes commonly used in the Digital Twin framework.
10
+ */
11
+ export declare const HttpStatus: {
12
+ readonly OK: 200;
13
+ readonly CREATED: 201;
14
+ readonly MULTI_STATUS: 207;
15
+ readonly BAD_REQUEST: 400;
16
+ readonly UNAUTHORIZED: 401;
17
+ readonly FORBIDDEN: 403;
18
+ readonly NOT_FOUND: 404;
19
+ readonly INTERNAL_SERVER_ERROR: 500;
20
+ };
21
+ export type HttpStatusCode = (typeof HttpStatus)[keyof typeof HttpStatus];
22
+ /**
23
+ * Creates a JSON response with the specified status and data.
24
+ *
25
+ * @param status - HTTP status code
26
+ * @param data - Data to serialize as JSON
27
+ * @returns DataResponse with JSON content type
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * return jsonResponse(200, { message: 'Success' })
32
+ * return jsonResponse(400, { error: 'Invalid input' })
33
+ * ```
34
+ */
35
+ export declare function jsonResponse(status: number, data: object): DataResponse;
36
+ /**
37
+ * Creates a successful JSON response (HTTP 200).
38
+ *
39
+ * @param data - Data to serialize as JSON
40
+ * @returns DataResponse with status 200
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * return successResponse({ message: 'Asset uploaded successfully' })
45
+ * ```
46
+ */
47
+ export declare function successResponse(data: object): DataResponse;
48
+ /**
49
+ * Creates an error response from an Error object or string.
50
+ *
51
+ * @param error - Error object or error message string
52
+ * @param status - HTTP status code (default: 500)
53
+ * @returns DataResponse with error message
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * return errorResponse(new Error('Something went wrong'))
58
+ * return errorResponse('Invalid input', 400)
59
+ * ```
60
+ */
61
+ export declare function errorResponse(error: unknown, status?: number): DataResponse;
62
+ /**
63
+ * Creates a 400 Bad Request response.
64
+ *
65
+ * @param message - Error message describing what's wrong with the request
66
+ * @returns DataResponse with status 400
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * return badRequestResponse('Missing required fields: description, source')
71
+ * ```
72
+ */
73
+ export declare function badRequestResponse(message: string): DataResponse;
74
+ /**
75
+ * Creates a 401 Unauthorized response.
76
+ *
77
+ * @param message - Error message (default: 'Authentication required')
78
+ * @returns DataResponse with status 401
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * return unauthorizedResponse()
83
+ * return unauthorizedResponse('Invalid authentication headers')
84
+ * ```
85
+ */
86
+ export declare function unauthorizedResponse(message?: string): DataResponse;
87
+ /**
88
+ * Creates a 403 Forbidden response.
89
+ *
90
+ * @param message - Error message describing why access is denied
91
+ * @returns DataResponse with status 403
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * return forbiddenResponse('You can only modify your own assets')
96
+ * ```
97
+ */
98
+ export declare function forbiddenResponse(message: string): DataResponse;
99
+ /**
100
+ * Creates a 404 Not Found response.
101
+ *
102
+ * @param message - Error message (default: 'Resource not found')
103
+ * @returns DataResponse with status 404
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * return notFoundResponse('Asset not found')
108
+ * ```
109
+ */
110
+ export declare function notFoundResponse(message?: string): DataResponse;
111
+ /**
112
+ * Creates a plain text response.
113
+ *
114
+ * @param status - HTTP status code
115
+ * @param content - Text content
116
+ * @returns DataResponse with text/plain content type
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * return textResponse(404, 'Asset not found')
121
+ * ```
122
+ */
123
+ export declare function textResponse(status: number, content: string): DataResponse;
124
+ /**
125
+ * Creates a binary/file response.
126
+ *
127
+ * @param content - File content as Buffer
128
+ * @param contentType - MIME type of the file
129
+ * @param filename - Optional filename for Content-Disposition header (triggers download)
130
+ * @returns DataResponse with appropriate content type
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * // For display/use in browser
135
+ * return fileResponse(buffer, 'model/gltf-binary')
136
+ *
137
+ * // For download
138
+ * return fileResponse(buffer, 'model/gltf-binary', 'model.glb')
139
+ * ```
140
+ */
141
+ export declare function fileResponse(content: Buffer, contentType: string, filename?: string): DataResponse;
142
+ /**
143
+ * Creates a 207 Multi-Status response for batch operations.
144
+ *
145
+ * @param message - Summary message
146
+ * @param results - Array of individual operation results
147
+ * @returns DataResponse with status 207
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * return multiStatusResponse('3/5 assets uploaded successfully', results)
152
+ * ```
153
+ */
154
+ export declare function multiStatusResponse(message: string, results: unknown[]): DataResponse;
155
+ //# sourceMappingURL=http_responses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http_responses.d.ts","sourceRoot":"","sources":["../../src/utils/http_responses.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAA;AAEV,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAEzE;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAMvE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAE,MAAyC,GAAG,YAAY,CAG7G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAEhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAkC,GAAG,YAAY,CAE9F;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAE/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,MAA6B,GAAG,YAAY,CAErF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAM1E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,CAYlG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,YAAY,CAErF"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * @fileoverview HTTP response utilities for consistent API responses
3
+ *
4
+ * This module provides helper functions to create standardized DataResponse objects,
5
+ * reducing boilerplate code in component handlers and ensuring consistent API responses.
6
+ */
7
+ /**
8
+ * HTTP status codes commonly used in the Digital Twin framework.
9
+ */
10
+ export const HttpStatus = {
11
+ OK: 200,
12
+ CREATED: 201,
13
+ MULTI_STATUS: 207,
14
+ BAD_REQUEST: 400,
15
+ UNAUTHORIZED: 401,
16
+ FORBIDDEN: 403,
17
+ NOT_FOUND: 404,
18
+ INTERNAL_SERVER_ERROR: 500
19
+ };
20
+ /**
21
+ * Creates a JSON response with the specified status and data.
22
+ *
23
+ * @param status - HTTP status code
24
+ * @param data - Data to serialize as JSON
25
+ * @returns DataResponse with JSON content type
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * return jsonResponse(200, { message: 'Success' })
30
+ * return jsonResponse(400, { error: 'Invalid input' })
31
+ * ```
32
+ */
33
+ export function jsonResponse(status, data) {
34
+ return {
35
+ status,
36
+ content: JSON.stringify(data),
37
+ headers: { 'Content-Type': 'application/json' }
38
+ };
39
+ }
40
+ /**
41
+ * Creates a successful JSON response (HTTP 200).
42
+ *
43
+ * @param data - Data to serialize as JSON
44
+ * @returns DataResponse with status 200
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * return successResponse({ message: 'Asset uploaded successfully' })
49
+ * ```
50
+ */
51
+ export function successResponse(data) {
52
+ return jsonResponse(HttpStatus.OK, data);
53
+ }
54
+ /**
55
+ * Creates an error response from an Error object or string.
56
+ *
57
+ * @param error - Error object or error message string
58
+ * @param status - HTTP status code (default: 500)
59
+ * @returns DataResponse with error message
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * return errorResponse(new Error('Something went wrong'))
64
+ * return errorResponse('Invalid input', 400)
65
+ * ```
66
+ */
67
+ export function errorResponse(error, status = HttpStatus.INTERNAL_SERVER_ERROR) {
68
+ const message = error instanceof Error ? error.message : String(error);
69
+ return jsonResponse(status, { error: message });
70
+ }
71
+ /**
72
+ * Creates a 400 Bad Request response.
73
+ *
74
+ * @param message - Error message describing what's wrong with the request
75
+ * @returns DataResponse with status 400
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * return badRequestResponse('Missing required fields: description, source')
80
+ * ```
81
+ */
82
+ export function badRequestResponse(message) {
83
+ return jsonResponse(HttpStatus.BAD_REQUEST, { error: message });
84
+ }
85
+ /**
86
+ * Creates a 401 Unauthorized response.
87
+ *
88
+ * @param message - Error message (default: 'Authentication required')
89
+ * @returns DataResponse with status 401
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * return unauthorizedResponse()
94
+ * return unauthorizedResponse('Invalid authentication headers')
95
+ * ```
96
+ */
97
+ export function unauthorizedResponse(message = 'Authentication required') {
98
+ return jsonResponse(HttpStatus.UNAUTHORIZED, { error: message });
99
+ }
100
+ /**
101
+ * Creates a 403 Forbidden response.
102
+ *
103
+ * @param message - Error message describing why access is denied
104
+ * @returns DataResponse with status 403
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * return forbiddenResponse('You can only modify your own assets')
109
+ * ```
110
+ */
111
+ export function forbiddenResponse(message) {
112
+ return jsonResponse(HttpStatus.FORBIDDEN, { error: message });
113
+ }
114
+ /**
115
+ * Creates a 404 Not Found response.
116
+ *
117
+ * @param message - Error message (default: 'Resource not found')
118
+ * @returns DataResponse with status 404
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * return notFoundResponse('Asset not found')
123
+ * ```
124
+ */
125
+ export function notFoundResponse(message = 'Resource not found') {
126
+ return jsonResponse(HttpStatus.NOT_FOUND, { error: message });
127
+ }
128
+ /**
129
+ * Creates a plain text response.
130
+ *
131
+ * @param status - HTTP status code
132
+ * @param content - Text content
133
+ * @returns DataResponse with text/plain content type
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * return textResponse(404, 'Asset not found')
138
+ * ```
139
+ */
140
+ export function textResponse(status, content) {
141
+ return {
142
+ status,
143
+ content,
144
+ headers: { 'Content-Type': 'text/plain' }
145
+ };
146
+ }
147
+ /**
148
+ * Creates a binary/file response.
149
+ *
150
+ * @param content - File content as Buffer
151
+ * @param contentType - MIME type of the file
152
+ * @param filename - Optional filename for Content-Disposition header (triggers download)
153
+ * @returns DataResponse with appropriate content type
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * // For display/use in browser
158
+ * return fileResponse(buffer, 'model/gltf-binary')
159
+ *
160
+ * // For download
161
+ * return fileResponse(buffer, 'model/gltf-binary', 'model.glb')
162
+ * ```
163
+ */
164
+ export function fileResponse(content, contentType, filename) {
165
+ const headers = { 'Content-Type': contentType };
166
+ if (filename) {
167
+ headers['Content-Disposition'] = `attachment; filename="${filename}"`;
168
+ }
169
+ return {
170
+ status: HttpStatus.OK,
171
+ content,
172
+ headers
173
+ };
174
+ }
175
+ /**
176
+ * Creates a 207 Multi-Status response for batch operations.
177
+ *
178
+ * @param message - Summary message
179
+ * @param results - Array of individual operation results
180
+ * @returns DataResponse with status 207
181
+ *
182
+ * @example
183
+ * ```typescript
184
+ * return multiStatusResponse('3/5 assets uploaded successfully', results)
185
+ * ```
186
+ */
187
+ export function multiStatusResponse(message, results) {
188
+ return jsonResponse(HttpStatus.MULTI_STATUS, { message, results });
189
+ }
190
+ //# sourceMappingURL=http_responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http_responses.js","sourceRoot":"","sources":["../../src/utils/http_responses.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,EAAE,EAAE,GAAG;IACP,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,GAAG;IACjB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,qBAAqB,EAAE,GAAG;CACpB,CAAA;AAIV;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,IAAY;IACrD,OAAO;QACH,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7B,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAClD,CAAA;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IACxC,OAAO,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,SAAiB,UAAU,CAAC,qBAAqB;IAC3F,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtE,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AACnD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAC9C,OAAO,YAAY,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AACnE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB,yBAAyB;IAC5E,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AACpE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC7C,OAAO,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AACjE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAkB,oBAAoB;IACnE,OAAO,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AACjE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,OAAe;IACxD,OAAO;QACH,MAAM;QACN,OAAO;QACP,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE;KAC5C,CAAA;AACL,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,WAAmB,EAAE,QAAiB;IAChF,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,WAAW,EAAE,CAAA;IAEvE,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,qBAAqB,CAAC,GAAG,yBAAyB,QAAQ,GAAG,CAAA;IACzE,CAAC;IAED,OAAO;QACH,MAAM,EAAE,UAAU,CAAC,EAAE;QACrB,OAAO;QACP,OAAO;KACV,CAAA;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,OAAkB;IACnE,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;AACtE,CAAC"}
@@ -2,4 +2,6 @@ export { Logger, LogLevel } from './logger.js';
2
2
  export { mapToDataRecord } from './map_to_data_record.js';
3
3
  export { servableEndpoint } from './servable_endpoint.js';
4
4
  export { extractZipContentStream, zipToDict, analyzeTilesetContent } from './zip_utils.js';
5
+ export { HttpStatus, jsonResponse, successResponse, errorResponse, badRequestResponse, unauthorizedResponse, forbiddenResponse, notFoundResponse, textResponse, fileResponse, multiStatusResponse } from './http_responses.js';
6
+ export type { HttpStatusCode } from './http_responses.js';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC1F,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
@@ -2,4 +2,5 @@ export { Logger, LogLevel } from './logger.js';
2
2
  export { mapToDataRecord } from './map_to_data_record.js';
3
3
  export { servableEndpoint } from './servable_endpoint.js';
4
4
  export { extractZipContentStream, zipToDict, analyzeTilesetContent } from './zip_utils.js';
5
+ export { HttpStatus, jsonResponse, successResponse, errorResponse, badRequestResponse, unauthorizedResponse, forbiddenResponse, notFoundResponse, textResponse, fileResponse, multiStatusResponse } from './http_responses.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC1F,OAAO,EACH,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACtB,MAAM,qBAAqB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"map_to_data_record.d.ts","sourceRoot":"","sources":["../../src/utils/map_to_data_record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU,CAe3F"}
1
+ {"version":3,"file":"map_to_data_record.d.ts","sourceRoot":"","sources":["../../src/utils/map_to_data_record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAElE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,UAAU,CAkB3F"}
@@ -15,7 +15,10 @@ export function mapToDataRecord(row, storage) {
15
15
  description: row.description,
16
16
  source: row.source,
17
17
  owner_id: row.owner_id,
18
- filename: row.filename
18
+ filename: row.filename,
19
+ // Default to true for backward compatibility with records created before is_public column
20
+ // SQLite stores booleans as 0/1, so we normalize to proper boolean
21
+ is_public: row.is_public === undefined || row.is_public === null ? true : Boolean(row.is_public)
19
22
  };
20
23
  }
21
24
  //# sourceMappingURL=map_to_data_record.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"map_to_data_record.js","sourceRoot":"","sources":["../../src/utils/map_to_data_record.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAsB,EAAE,OAAuB;IAC3E,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB,WAAW,EAAE,GAAG,CAAC,IAAI;QACrB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAErC,2DAA2D;QAC3D,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACzB,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"map_to_data_record.js","sourceRoot":"","sources":["../../src/utils/map_to_data_record.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAsB,EAAE,OAAuB;IAC3E,OAAO;QACH,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACxB,WAAW,EAAE,GAAG,CAAC,IAAI;QACrB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAErC,2DAA2D;QAC3D,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,0FAA0F;QAC1F,mEAAmE;QACnE,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;KACnG,CAAA;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "digitaltwin-core",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "Minimalist framework to collect and handle data in a Digital Twin project",
5
5
  "license": "MIT",
6
6
  "author": "Axel Hoffmann",
@@ -97,7 +97,6 @@
97
97
  "bullmq": "^5.56.5",
98
98
  "cors": "^2.8.5",
99
99
  "ioredis": "^5.6.1",
100
- "japa": "^4.0.0",
101
100
  "jszip": "^3.10.1",
102
101
  "lodash": "^4.17.21",
103
102
  "multer": "^2.0.2",