rlz-engine 1.0.53 → 1.0.55

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 (134) hide show
  1. package/README.md +225 -0
  2. package/dist/back/auth/admin-secret.d.ts +4 -0
  3. package/dist/back/auth/admin-secret.js +86 -0
  4. package/dist/back/auth/admin-secret.js.map +1 -0
  5. package/dist/back/auth/cookies.d.ts +12 -0
  6. package/dist/back/auth/cookies.js +20 -0
  7. package/dist/back/auth/cookies.js.map +1 -0
  8. package/dist/back/auth/csrf.d.ts +8 -0
  9. package/dist/back/auth/csrf.js +47 -0
  10. package/dist/back/auth/csrf.js.map +1 -0
  11. package/dist/back/auth/model.d.ts +7 -3
  12. package/dist/back/auth/module.d.ts +14 -0
  13. package/dist/back/auth/module.js +121 -0
  14. package/dist/back/auth/module.js.map +1 -0
  15. package/dist/back/auth/rate-limit.d.ts +11 -0
  16. package/dist/back/auth/rate-limit.js +59 -0
  17. package/dist/back/auth/rate-limit.js.map +1 -0
  18. package/dist/back/auth/session.d.ts +22 -0
  19. package/dist/back/auth/session.js +55 -0
  20. package/dist/back/auth/session.js.map +1 -0
  21. package/dist/back/auth/storage.d.ts +9 -9
  22. package/dist/back/auth/storage.js +39 -36
  23. package/dist/back/auth/storage.js.map +1 -1
  24. package/dist/back/auth/utils.d.ts +10 -8
  25. package/dist/back/auth/utils.js +43 -56
  26. package/dist/back/auth/utils.js.map +1 -1
  27. package/dist/back/certificate/adm-rpc.d.ts +5 -0
  28. package/dist/back/certificate/adm-rpc.js +52 -0
  29. package/dist/back/certificate/adm-rpc.js.map +1 -0
  30. package/dist/back/certificate/module.d.ts +13 -0
  31. package/dist/back/certificate/module.js +19 -0
  32. package/dist/back/certificate/module.js.map +1 -0
  33. package/dist/back/cli/cli-engine.d.ts +25 -0
  34. package/dist/back/cli/cli-engine.js +68 -0
  35. package/dist/back/cli/cli-engine.js.map +1 -0
  36. package/dist/back/http/module.d.ts +7 -0
  37. package/dist/back/http/module.js +34 -0
  38. package/dist/back/http/module.js.map +1 -0
  39. package/dist/back/http/server.d.ts +22 -0
  40. package/dist/back/http/server.js +126 -0
  41. package/dist/back/http/server.js.map +1 -0
  42. package/dist/back/logger/adm-rpc.d.ts +2 -0
  43. package/dist/back/logger/adm-rpc.js +50 -0
  44. package/dist/back/logger/adm-rpc.js.map +1 -0
  45. package/dist/back/logger/audit-logger.d.ts +97 -0
  46. package/dist/back/logger/audit-logger.js +155 -0
  47. package/dist/back/logger/audit-logger.js.map +1 -0
  48. package/dist/back/logger/cli.d.ts +2 -0
  49. package/dist/back/logger/cli.js +43 -0
  50. package/dist/back/logger/cli.js.map +1 -0
  51. package/dist/back/logger/format.d.ts +3 -0
  52. package/dist/back/logger/format.js +27 -0
  53. package/dist/back/logger/format.js.map +1 -0
  54. package/dist/back/logger/module.d.ts +14 -0
  55. package/dist/back/logger/module.js +24 -0
  56. package/dist/back/logger/module.js.map +1 -0
  57. package/dist/back/logger/sqlite-storage.d.ts +27 -0
  58. package/dist/back/logger/sqlite-storage.js +169 -0
  59. package/dist/back/logger/sqlite-storage.js.map +1 -0
  60. package/dist/back/logger/system-logger.d.ts +27 -0
  61. package/dist/back/logger/system-logger.js +82 -0
  62. package/dist/back/logger/system-logger.js.map +1 -0
  63. package/dist/back/module/composer.d.ts +34 -0
  64. package/dist/back/module/composer.js +57 -0
  65. package/dist/back/module/composer.js.map +1 -0
  66. package/dist/back/rpc/gen.d.ts +2 -1
  67. package/dist/back/rpc/gen.js +38 -17
  68. package/dist/back/rpc/gen.js.map +1 -1
  69. package/dist/back/rpc/module.d.ts +14 -0
  70. package/dist/back/rpc/module.js +43 -0
  71. package/dist/back/rpc/module.js.map +1 -0
  72. package/dist/back/rpc/rpc.d.ts +53 -6
  73. package/dist/back/rpc/rpc.js +72 -29
  74. package/dist/back/rpc/rpc.js.map +1 -1
  75. package/dist/back/storage/db.js +5 -3
  76. package/dist/back/storage/db.js.map +1 -1
  77. package/dist/back/storage/model.d.ts +2 -2
  78. package/dist/back/storage/model.js +2 -2
  79. package/dist/back/storage/model.js.map +1 -1
  80. package/dist/back/storage/sync.d.ts +5 -2
  81. package/dist/back/storage/sync.js +1 -3
  82. package/dist/back/storage/sync.js.map +1 -1
  83. package/dist/client/adm/admin.d.ts +17 -0
  84. package/dist/client/adm/admin.js +62 -0
  85. package/dist/client/adm/admin.js.map +1 -0
  86. package/dist/client/adm/audit-logs.d.ts +5 -0
  87. package/dist/client/adm/audit-logs.js +68 -0
  88. package/dist/client/adm/audit-logs.js.map +1 -0
  89. package/dist/client/adm/certificate.d.ts +5 -0
  90. package/dist/client/adm/certificate.js +48 -0
  91. package/dist/client/adm/certificate.js.map +1 -0
  92. package/dist/client/config.d.ts +2 -0
  93. package/dist/client/config.js +7 -0
  94. package/dist/client/config.js.map +1 -1
  95. package/dist/client/rpc.d.ts +4 -4
  96. package/dist/client/rpc.js +19 -7
  97. package/dist/client/rpc.js.map +1 -1
  98. package/dist/client/screens/404.js.map +1 -1
  99. package/dist/client/screens/SignupSigninScreen.d.ts +13 -1
  100. package/dist/client/screens/SignupSigninScreen.js +41 -37
  101. package/dist/client/screens/SignupSigninScreen.js.map +1 -1
  102. package/dist/client/state/auth.d.ts +13 -7
  103. package/dist/client/state/auth.js +24 -19
  104. package/dist/client/state/auth.js.map +1 -1
  105. package/dist/client/sync.d.ts +7 -2
  106. package/dist/client/sync.js +5 -3
  107. package/dist/client/sync.js.map +1 -1
  108. package/dist/client/widgets/ItemsSelect.js +15 -8
  109. package/dist/client/widgets/ItemsSelect.js.map +1 -1
  110. package/package.json +87 -77
  111. package/dist/back/auth/controllers.d.ts +0 -7
  112. package/dist/back/auth/controllers.js +0 -39
  113. package/dist/back/auth/controllers.js.map +0 -1
  114. package/dist/back/esbuild-plugin-pino.d.ts +0 -6
  115. package/dist/back/esbuild-plugin-pino.js +0 -87
  116. package/dist/back/esbuild-plugin-pino.js.map +0 -1
  117. package/dist/back/logger.d.ts +0 -7
  118. package/dist/back/logger.js +0 -43
  119. package/dist/back/logger.js.map +0 -1
  120. package/dist/back/server.d.ts +0 -17
  121. package/dist/back/server.js +0 -94
  122. package/dist/back/server.js.map +0 -1
  123. package/dist/client/api/api.d.ts +0 -22
  124. package/dist/client/api/api.js +0 -87
  125. package/dist/client/api/api.js.map +0 -1
  126. package/dist/client/api/auth.d.ts +0 -5
  127. package/dist/client/api/auth.js +0 -22
  128. package/dist/client/api/auth.js.map +0 -1
  129. package/dist/shared/api/auth.d.ts +0 -19
  130. package/dist/shared/api/auth.js +0 -17
  131. package/dist/shared/api/auth.js.map +0 -1
  132. package/dist/shared/api/sync.d.ts +0 -21
  133. package/dist/shared/api/sync.js +0 -22
  134. package/dist/shared/api/sync.js.map +0 -1
@@ -1,17 +0,0 @@
1
- import { FastifyInstance, RawReplyDefaultExpression, RawRequestDefaultExpression, RawServerBase } from 'fastify';
2
- import { type AcmeProvider } from 'fastify-acme';
3
- import { Logger } from 'pino';
4
- export type InitServerFuncType = <S extends RawServerBase>(server: FastifyInstance<S, RawRequestDefaultExpression<S>, RawReplyDefaultExpression<S>, Logger>) => Promise<void>;
5
- export interface RunServerParams {
6
- production: boolean;
7
- debug?: boolean;
8
- unsecurePort?: number;
9
- securePort?: number;
10
- domain: string;
11
- certDir: string;
12
- /** Certificate authority used for ACME issuance and renewal. Defaults to Let's Encrypt. */
13
- acmeProvider?: AcmeProvider;
14
- staticDir: string;
15
- init: InitServerFuncType;
16
- }
17
- export declare function runServer({ production, debug, domain, certDir, acmeProvider, staticDir, securePort, unsecurePort, init }: RunServerParams): Promise<() => Promise<void>>;
@@ -1,94 +0,0 @@
1
- import fastifyCompress from '@fastify/compress';
2
- import fastifyCors from '@fastify/cors';
3
- import { fastifyResponseValidation } from '@fastify/response-validation';
4
- import fastifySensible, { httpErrors } from '@fastify/sensible';
5
- import fastifyStatic from '@fastify/static';
6
- import formatsPlugin from 'ajv-formats';
7
- import fastify from 'fastify';
8
- import { fastifyAcmeSecurePlugin, fastifyAcmeUnsecurePlugin, getCertAndKey } from 'fastify-acme';
9
- import { createReadStream } from 'fs';
10
- import { installIntoGlobal } from 'iterator-helpers-polyfill';
11
- import path from 'path';
12
- import { logger } from './logger.js';
13
- installIntoGlobal();
14
- export async function runServer({ production, debug = false, domain, certDir, acmeProvider, staticDir, securePort, unsecurePort, init }) {
15
- const L = logger('init', { debug });
16
- L.info({ production }, 'runServer');
17
- const httpServer = fastify({
18
- loggerInstance: logger('http', { debug }),
19
- ajv: { plugins: [formatsPlugin.default], customOptions: { useDefaults: false, coerceTypes: false, allErrors: true, verbose: true } }
20
- });
21
- if (!production) {
22
- await httpServer.register(fastifyCors, {
23
- methods: ['get', 'post']
24
- });
25
- await httpServer.register(fastifyCompress);
26
- await httpServer.register(fastifySensible);
27
- await httpServer.register(fastifyResponseValidation, {
28
- ajv: { plugins: [formatsPlugin.default], useDefaults: false, coerceTypes: false, allErrors: true, verbose: true }
29
- });
30
- await init(httpServer);
31
- httpServer.all('/api/*', async () => {
32
- return httpErrors.notFound();
33
- });
34
- addStaticEndpoints(httpServer, staticDir);
35
- await httpServer.listen({ port: unsecurePort ?? 8080 });
36
- return async () => {
37
- await httpServer.close();
38
- };
39
- }
40
- httpServer.register(fastifyAcmeUnsecurePlugin, { redirectDomain: domain });
41
- await httpServer.listen({ port: unsecurePort ?? 80, host: '::' });
42
- L.info('Get certificates');
43
- const certAndKey = await getCertAndKey(certDir, domain, httpServer.log, acmeProvider);
44
- L.info('Init secure server');
45
- const httpsServer = fastify({
46
- http2: true,
47
- https: {
48
- allowHTTP1: true,
49
- cert: certAndKey.cert,
50
- key: certAndKey.pkey
51
- },
52
- loggerInstance: logger('https', { debug }),
53
- ajv: { plugins: [formatsPlugin.default], customOptions: { useDefaults: false, coerceTypes: false, allErrors: true, verbose: true } }
54
- });
55
- await httpsServer.register(fastifyAcmeSecurePlugin, {
56
- certDir,
57
- domain,
58
- provider: acmeProvider
59
- });
60
- await httpsServer.register(fastifyCors, {
61
- methods: ['get', 'post']
62
- });
63
- await httpsServer.register(fastifyCompress);
64
- await httpsServer.register(fastifySensible);
65
- await httpsServer.register(fastifyResponseValidation, { ajv: { plugins: [formatsPlugin.default], useDefaults: false, coerceTypes: false, allErrors: true, verbose: true } });
66
- await init(httpsServer);
67
- httpsServer.all('/api/*', async () => {
68
- return httpErrors.notFound();
69
- });
70
- httpsServer.all('/rpc/*', async () => {
71
- return httpErrors.notFound();
72
- });
73
- addStaticEndpoints(httpsServer, staticDir);
74
- await httpsServer.listen({ port: securePort ?? 443, host: '::' });
75
- L.info('runServer done');
76
- return async () => {
77
- await Promise.all([
78
- httpServer.close(),
79
- httpsServer.close()
80
- ]);
81
- };
82
- }
83
- function addStaticEndpoints(server, staticPath) {
84
- const absStaticPath = path.resolve(staticPath);
85
- const absIndexPath = path.join(absStaticPath, 'index.html');
86
- server.register((s) => {
87
- s.register(fastifyStatic, { root: absStaticPath });
88
- s.setNotFoundHandler(async (_req, resp) => {
89
- await resp.type('text/html')
90
- .send(createReadStream(absIndexPath));
91
- });
92
- });
93
- }
94
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/back/server.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import z, { ZodType } from 'zod';
2
- export declare class HttpError extends Error {
3
- readonly method: string;
4
- readonly url: string;
5
- readonly status: number;
6
- readonly statusText: string;
7
- constructor(method: string, url: string, status: number, statusText: string);
8
- }
9
- export declare class Unauthorized extends HttpError {
10
- constructor(method: string, url: string, statusText: string);
11
- }
12
- export declare class Forbidden extends HttpError {
13
- constructor(method: string, url: string, statusText: string);
14
- }
15
- export declare class NotFound extends HttpError {
16
- constructor(method: string, url: string, statusText: string);
17
- }
18
- export interface AuthParam {
19
- userId: string;
20
- tempPassword: string;
21
- }
22
- export declare function apiCall<T extends ZodType>(method: 'GET' | 'POST', version: string, path: string, auth: AuthParam | null, queryString: Record<string, string> | null, request: object | null, validator: T): Promise<z.infer<T>>;
@@ -1,87 +0,0 @@
1
- import { getFrontConfig } from '../config.js';
2
- export class HttpError extends Error {
3
- method;
4
- url;
5
- status;
6
- statusText;
7
- constructor(method, url, status, statusText) {
8
- super(`Not ok resp (${status} ${statusText}): ${method} ${url}`);
9
- this.method = method;
10
- this.url = url;
11
- this.status = status;
12
- this.statusText = statusText;
13
- }
14
- }
15
- export class Unauthorized extends HttpError {
16
- constructor(method, url, statusText) {
17
- super(method, url, 401, statusText);
18
- }
19
- }
20
- export class Forbidden extends HttpError {
21
- constructor(method, url, statusText) {
22
- super(method, url, 403, statusText);
23
- }
24
- }
25
- export class NotFound extends HttpError {
26
- constructor(method, url, statusText) {
27
- super(method, url, 404, statusText);
28
- }
29
- }
30
- function url(version, path, queryString) {
31
- const domain = getFrontConfig().apiDomain;
32
- const base = `${domain}api/${version}/${path}`;
33
- if (queryString === null) {
34
- return base;
35
- }
36
- const query = Object.entries(queryString)
37
- .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
38
- .join('&');
39
- return `${base}?${query}`;
40
- }
41
- const GZIP_THRESHOLD = 16 * 1024;
42
- async function prepareBody(request) {
43
- const textBody = JSON.stringify(request);
44
- if (textBody.length <= GZIP_THRESHOLD) {
45
- return textBody;
46
- }
47
- const bodyStream = new Blob([textBody]).stream();
48
- const bodyStreamCompressed = bodyStream.pipeThrough(new CompressionStream('gzip'));
49
- return new Response(bodyStreamCompressed).blob();
50
- }
51
- export async function apiCall(method, version, path, auth, queryString, request, validator) {
52
- const headers = {};
53
- const body = request === null ? undefined : await prepareBody(request);
54
- if (body !== undefined) {
55
- headers['content-type'] = 'application/json';
56
- if (typeof body !== 'string') {
57
- headers['content-encoding'] = 'gzip';
58
- }
59
- }
60
- if (auth !== null) {
61
- headers['authorization'] = `${auth.userId}:${auth.tempPassword}`;
62
- }
63
- const u = url(version, path, queryString);
64
- const resp = await fetch(u, {
65
- method,
66
- headers,
67
- body
68
- });
69
- if (!resp.ok) {
70
- if (resp.status === 401) {
71
- throw new Unauthorized(method, u, resp.statusText);
72
- }
73
- if (resp.status === 403) {
74
- throw new Forbidden(method, u, resp.statusText);
75
- }
76
- if (resp.status === 404) {
77
- throw new NotFound(method, u, resp.statusText);
78
- }
79
- throw new HttpError(method, u, resp.status, resp.statusText);
80
- }
81
- if (resp.status === 204) {
82
- return validator.parse(undefined);
83
- }
84
- const json = await resp.json();
85
- return validator.parse(json);
86
- }
87
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/client/api/api.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { ApiAuthResponseV0 } from '../../shared/api/auth.js';
2
- import { AuthParam } from './api.js';
3
- export declare function apiSignup(name: string, email: string, password: string): Promise<ApiAuthResponseV0>;
4
- export declare function apiSignin(name: string, password: string): Promise<ApiAuthResponseV0>;
5
- export declare function apiLogout(auth: AuthParam): Promise<void>;
@@ -1,22 +0,0 @@
1
- import { z } from 'zod';
2
- import { API_AUTH_RESPONSE_SCHEMA_V0 } from '../../shared/api/auth.js';
3
- import { apiCall } from './api.js';
4
- export async function apiSignup(name, email, password) {
5
- const req = {
6
- name,
7
- email,
8
- password
9
- };
10
- return apiCall('POST', 'v0', 'signup', null, null, req, API_AUTH_RESPONSE_SCHEMA_V0);
11
- }
12
- export async function apiSignin(name, password) {
13
- const req = {
14
- name,
15
- password
16
- };
17
- return apiCall('POST', 'v0', 'signin', null, null, req, API_AUTH_RESPONSE_SCHEMA_V0);
18
- }
19
- export async function apiLogout(auth) {
20
- await apiCall('POST', 'v0', 'logout', auth, null, null, z.undefined());
21
- }
22
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/api/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,2BAA2B,EAA6D,MAAM,0BAA0B,CAAA;AACjI,OAAO,EAAE,OAAO,EAAa,MAAM,UAAU,CAAA;AAE7C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,QAAgB;IACzE,MAAM,GAAG,GAAuB;QAC5B,IAAI;QACJ,KAAK;QACL,QAAQ;KACX,CAAA;IAED,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAA;AACxF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY,EAAE,QAAgB;IAC1D,MAAM,GAAG,GAAuB;QAC5B,IAAI;QACJ,QAAQ;KACX,CAAA;IAED,OAAO,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,2BAA2B,CAAC,CAAA;AACxF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAe;IAC3C,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;AAC1E,CAAC"}
@@ -1,19 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const API_AUTH_RESPONSE_SCHEMA_V0: z.ZodObject<{
3
- id: z.ZodString;
4
- name: z.ZodString;
5
- email: z.ZodString;
6
- tempPassword: z.ZodString;
7
- }, z.core.$strip>;
8
- export type ApiAuthResponseV0 = z.infer<typeof API_AUTH_RESPONSE_SCHEMA_V0>;
9
- export declare const API_SIGNUP_REQUEST_SCHEMA_V0: z.ZodObject<{
10
- name: z.ZodString;
11
- email: z.ZodString;
12
- password: z.ZodString;
13
- }, z.core.$strip>;
14
- export type ApiSignupRequestV0 = z.infer<typeof API_SIGNUP_REQUEST_SCHEMA_V0>;
15
- export declare const API_SIGNIN_REQUEST_SCHEMA_V0: z.ZodObject<{
16
- name: z.ZodString;
17
- password: z.ZodString;
18
- }, z.core.$strip>;
19
- export type ApiSigninRequestV0 = z.infer<typeof API_SIGNIN_REQUEST_SCHEMA_V0>;
@@ -1,17 +0,0 @@
1
- import { z } from 'zod';
2
- export const API_AUTH_RESPONSE_SCHEMA_V0 = z.object({
3
- id: z.string().uuid(),
4
- name: z.string(),
5
- email: z.string().email(),
6
- tempPassword: z.string()
7
- });
8
- export const API_SIGNUP_REQUEST_SCHEMA_V0 = z.object({
9
- name: z.string(),
10
- email: z.string().email(),
11
- password: z.string()
12
- });
13
- export const API_SIGNIN_REQUEST_SCHEMA_V0 = z.object({
14
- name: z.string(),
15
- password: z.string()
16
- });
17
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/shared/api/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CAC3B,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAA"}
@@ -1,21 +0,0 @@
1
- import z, { ZodType } from 'zod';
2
- export declare const API_GET_OBJECTS_QUERY_STRING_SCHEMA_V0: z.ZodObject<{
3
- syncAfter: z.ZodOptional<z.ZodString>;
4
- }, z.z.core.$strip>;
5
- export declare function API_ITEMS_RESPONSE_SCHEMA_V0<T extends ZodType>(itemsSchema: T): z.ZodReadonly<z.ZodObject<{
6
- items: z.ZodReadonly<z.ZodArray<T>>;
7
- }, z.z.core.$strip>>;
8
- export type ApiItemsResponseV0<T extends ZodType> = z.infer<ReturnType<typeof API_ITEMS_RESPONSE_SCHEMA_V0<T>>>;
9
- export declare const API_GET_OBJECTS_REQUEST_SCHEMA_V0: z.ZodReadonly<z.ZodObject<{
10
- ids: z.ZodReadonly<z.ZodArray<z.ZodString>>;
11
- }, z.z.core.$strip>>;
12
- export type ApiGetObjectsRequestV0 = z.infer<typeof API_GET_OBJECTS_REQUEST_SCHEMA_V0>;
13
- export declare const API_COMPARISON_OBJECT_SCHEMA_V0: z.ZodObject<{
14
- id: z.ZodString;
15
- lastModified: z.ZodString;
16
- }, z.z.core.$strip>;
17
- export type ApiComparisonObjectV0 = z.infer<typeof API_COMPARISON_OBJECT_SCHEMA_V0>;
18
- export declare function API_ITEMS_REQUEST_SCHEMA_V0<T extends ZodType>(itemsSchema: T): z.ZodReadonly<z.ZodObject<{
19
- items: z.ZodReadonly<z.ZodArray<T>>;
20
- }, z.z.core.$strip>>;
21
- export type ApiItemsRequestV0<T extends ZodType> = z.infer<ReturnType<typeof API_ITEMS_REQUEST_SCHEMA_V0<T>>>;
@@ -1,22 +0,0 @@
1
- import z from 'zod';
2
- export const API_GET_OBJECTS_QUERY_STRING_SCHEMA_V0 = z.object({
3
- syncAfter: z.string().datetime().optional()
4
- });
5
- export function API_ITEMS_RESPONSE_SCHEMA_V0(itemsSchema) {
6
- return z.object({
7
- items: z.array(itemsSchema).readonly()
8
- }).readonly();
9
- }
10
- export const API_GET_OBJECTS_REQUEST_SCHEMA_V0 = z.object({
11
- ids: z.array(z.string().uuid()).min(1).readonly()
12
- }).readonly();
13
- export const API_COMPARISON_OBJECT_SCHEMA_V0 = z.object({
14
- id: z.string().uuid(),
15
- lastModified: z.string().datetime()
16
- });
17
- export function API_ITEMS_REQUEST_SCHEMA_V0(itemsSchema) {
18
- return z.object({
19
- items: z.array(itemsSchema).min(1).readonly()
20
- }).readonly();
21
- }
22
- //# sourceMappingURL=sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/shared/api/sync.ts"],"names":[],"mappings":"AAAA,OAAO,CAAc,MAAM,KAAK,CAAA;AAEhC,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAA;AAEF,MAAM,UAAU,4BAA4B,CAAoB,WAAc;IAC1E,OAAO,CAAC,CAAC,MAAM,CAAC;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;KACzC,CAAC,CAAC,QAAQ,EAAE,CAAA;AACjB,CAAC;AAID,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC,QAAQ,EAAE,CAAA;AAIb,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAA;AAIF,MAAM,UAAU,2BAA2B,CAAoB,WAAc;IACzE,OAAO,CAAC,CAAC,MAAM,CAAC;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KAChD,CAAC,CAAC,QAAQ,EAAE,CAAA;AACjB,CAAC"}