@tmlmobilidade/go-types-shared 20260611.1527.25

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 (51) hide show
  1. package/dist/dates/calendar-date.d.ts +13 -0
  2. package/dist/dates/calendar-date.js +20 -0
  3. package/dist/dates/index.d.ts +3 -0
  4. package/dist/dates/index.js +3 -0
  5. package/dist/dates/operational-date.d.ts +13 -0
  6. package/dist/dates/operational-date.js +20 -0
  7. package/dist/dates/unix-timestamp.d.ts +17 -0
  8. package/dist/dates/unix-timestamp.js +22 -0
  9. package/dist/documents/comment.d.ts +367 -0
  10. package/dist/documents/comment.js +83 -0
  11. package/dist/documents/document.d.ts +27 -0
  12. package/dist/documents/document.js +12 -0
  13. package/dist/environment.d.ts +16 -0
  14. package/dist/environment.js +15 -0
  15. package/dist/fastify.d.ts +11 -0
  16. package/dist/fastify.js +7 -0
  17. package/dist/i18n-code.d.ts +4 -0
  18. package/dist/i18n-code.js +9 -0
  19. package/dist/index.d.ts +9 -0
  20. package/dist/index.js +9 -0
  21. package/dist/position.d.ts +160 -0
  22. package/dist/position.js +41 -0
  23. package/dist/status/approval.d.ts +4 -0
  24. package/dist/status/approval.js +10 -0
  25. package/dist/status/availability.d.ts +4 -0
  26. package/dist/status/availability.js +9 -0
  27. package/dist/status/condition.d.ts +4 -0
  28. package/dist/status/condition.js +11 -0
  29. package/dist/status/delay.d.ts +4 -0
  30. package/dist/status/delay.js +10 -0
  31. package/dist/status/index.d.ts +12 -0
  32. package/dist/status/index.js +12 -0
  33. package/dist/status/lifecycle.d.ts +4 -0
  34. package/dist/status/lifecycle.js +12 -0
  35. package/dist/status/operational.d.ts +4 -0
  36. package/dist/status/operational.js +10 -0
  37. package/dist/status/processing.d.ts +4 -0
  38. package/dist/status/processing.js +11 -0
  39. package/dist/status/publish.d.ts +4 -0
  40. package/dist/status/publish.js +9 -0
  41. package/dist/status/seen.d.ts +4 -0
  42. package/dist/status/seen.js +9 -0
  43. package/dist/status/system.d.ts +4 -0
  44. package/dist/status/system.js +10 -0
  45. package/dist/status/ticketing.d.ts +4 -0
  46. package/dist/status/ticketing.js +8 -0
  47. package/dist/status/validity.d.ts +4 -0
  48. package/dist/status/validity.js +9 -0
  49. package/dist/utility.d.ts +83 -0
  50. package/dist/utility.js +1 -0
  51. package/package.json +50 -0
@@ -0,0 +1,9 @@
1
+ export * from './dates/index.js';
2
+ export * from './documents/comment.js';
3
+ export * from './documents/document.js';
4
+ export * from './environment.js';
5
+ export * from './fastify.js';
6
+ export * from './i18n-code.js';
7
+ export * from './position.js';
8
+ export * from './status/index.js';
9
+ export * from './utility.js';
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export * from './dates/index.js';
2
+ export * from './documents/comment.js';
3
+ export * from './documents/document.js';
4
+ export * from './environment.js';
5
+ export * from './fastify.js';
6
+ export * from './i18n-code.js';
7
+ export * from './position.js';
8
+ export * from './status/index.js';
9
+ export * from './utility.js';
@@ -0,0 +1,160 @@
1
+ import z from 'zod';
2
+ export declare const PositionSchema: z.ZodObject<{
3
+ geohash: z.ZodString;
4
+ h3: z.ZodString;
5
+ latitude: z.ZodNumber;
6
+ longitude: z.ZodNumber;
7
+ }, "strip", z.ZodTypeAny, {
8
+ geohash: string;
9
+ h3: string;
10
+ latitude: number;
11
+ longitude: number;
12
+ }, {
13
+ geohash: string;
14
+ h3: string;
15
+ latitude: number;
16
+ longitude: number;
17
+ }>;
18
+ export declare const ExtendedPositionSchema: z.ZodObject<{
19
+ geohash: z.ZodObject<{
20
+ geohash_2: z.ZodString;
21
+ geohash_3: z.ZodString;
22
+ geohash_4: z.ZodString;
23
+ geohash_5: z.ZodString;
24
+ geohash_6: z.ZodString;
25
+ geohash_7: z.ZodString;
26
+ geohash_8: z.ZodString;
27
+ geohash_9: z.ZodString;
28
+ geohash_10: z.ZodString;
29
+ geohash_11: z.ZodString;
30
+ geohash_12: z.ZodString;
31
+ }, "strip", z.ZodTypeAny, {
32
+ geohash_2: string;
33
+ geohash_3: string;
34
+ geohash_4: string;
35
+ geohash_5: string;
36
+ geohash_6: string;
37
+ geohash_7: string;
38
+ geohash_8: string;
39
+ geohash_9: string;
40
+ geohash_10: string;
41
+ geohash_11: string;
42
+ geohash_12: string;
43
+ }, {
44
+ geohash_2: string;
45
+ geohash_3: string;
46
+ geohash_4: string;
47
+ geohash_5: string;
48
+ geohash_6: string;
49
+ geohash_7: string;
50
+ geohash_8: string;
51
+ geohash_9: string;
52
+ geohash_10: string;
53
+ geohash_11: string;
54
+ geohash_12: string;
55
+ }>;
56
+ h3: z.ZodObject<{
57
+ h3_1: z.ZodString;
58
+ h3_2: z.ZodString;
59
+ h3_3: z.ZodString;
60
+ h3_4: z.ZodString;
61
+ h3_5: z.ZodString;
62
+ h3_6: z.ZodString;
63
+ h3_7: z.ZodString;
64
+ h3_8: z.ZodString;
65
+ h3_9: z.ZodString;
66
+ h3_10: z.ZodString;
67
+ h3_11: z.ZodString;
68
+ h3_12: z.ZodString;
69
+ }, "strip", z.ZodTypeAny, {
70
+ h3_1: string;
71
+ h3_2: string;
72
+ h3_3: string;
73
+ h3_4: string;
74
+ h3_5: string;
75
+ h3_6: string;
76
+ h3_7: string;
77
+ h3_8: string;
78
+ h3_9: string;
79
+ h3_10: string;
80
+ h3_11: string;
81
+ h3_12: string;
82
+ }, {
83
+ h3_1: string;
84
+ h3_2: string;
85
+ h3_3: string;
86
+ h3_4: string;
87
+ h3_5: string;
88
+ h3_6: string;
89
+ h3_7: string;
90
+ h3_8: string;
91
+ h3_9: string;
92
+ h3_10: string;
93
+ h3_11: string;
94
+ h3_12: string;
95
+ }>;
96
+ latitude: z.ZodNumber;
97
+ longitude: z.ZodNumber;
98
+ }, "strip", z.ZodTypeAny, {
99
+ geohash: {
100
+ geohash_2: string;
101
+ geohash_3: string;
102
+ geohash_4: string;
103
+ geohash_5: string;
104
+ geohash_6: string;
105
+ geohash_7: string;
106
+ geohash_8: string;
107
+ geohash_9: string;
108
+ geohash_10: string;
109
+ geohash_11: string;
110
+ geohash_12: string;
111
+ };
112
+ h3: {
113
+ h3_1: string;
114
+ h3_2: string;
115
+ h3_3: string;
116
+ h3_4: string;
117
+ h3_5: string;
118
+ h3_6: string;
119
+ h3_7: string;
120
+ h3_8: string;
121
+ h3_9: string;
122
+ h3_10: string;
123
+ h3_11: string;
124
+ h3_12: string;
125
+ };
126
+ latitude: number;
127
+ longitude: number;
128
+ }, {
129
+ geohash: {
130
+ geohash_2: string;
131
+ geohash_3: string;
132
+ geohash_4: string;
133
+ geohash_5: string;
134
+ geohash_6: string;
135
+ geohash_7: string;
136
+ geohash_8: string;
137
+ geohash_9: string;
138
+ geohash_10: string;
139
+ geohash_11: string;
140
+ geohash_12: string;
141
+ };
142
+ h3: {
143
+ h3_1: string;
144
+ h3_2: string;
145
+ h3_3: string;
146
+ h3_4: string;
147
+ h3_5: string;
148
+ h3_6: string;
149
+ h3_7: string;
150
+ h3_8: string;
151
+ h3_9: string;
152
+ h3_10: string;
153
+ h3_11: string;
154
+ h3_12: string;
155
+ };
156
+ latitude: number;
157
+ longitude: number;
158
+ }>;
159
+ export type Position = z.infer<typeof PositionSchema>;
160
+ export type ExtendedPosition = z.infer<typeof ExtendedPositionSchema>;
@@ -0,0 +1,41 @@
1
+ import z from 'zod';
2
+ /* * */
3
+ export const PositionSchema = z.object({
4
+ geohash: z.string(),
5
+ h3: z.string(),
6
+ latitude: z.number(),
7
+ longitude: z.number(),
8
+ });
9
+ export const ExtendedPositionSchema = z.object({
10
+ geohash: z.object({
11
+ geohash_2: z.string(),
12
+ geohash_3: z.string(),
13
+ geohash_4: z.string(),
14
+ geohash_5: z.string(),
15
+ geohash_6: z.string(),
16
+ geohash_7: z.string(),
17
+ geohash_8: z.string(),
18
+ geohash_9: z.string(),
19
+ //
20
+ geohash_10: z.string(),
21
+ geohash_11: z.string(),
22
+ geohash_12: z.string(),
23
+ }),
24
+ h3: z.object({
25
+ h3_1: z.string(),
26
+ h3_2: z.string(),
27
+ h3_3: z.string(),
28
+ h3_4: z.string(),
29
+ h3_5: z.string(),
30
+ h3_6: z.string(),
31
+ h3_7: z.string(),
32
+ h3_8: z.string(),
33
+ h3_9: z.string(),
34
+ //
35
+ h3_10: z.string(),
36
+ h3_11: z.string(),
37
+ h3_12: z.string(),
38
+ }),
39
+ latitude: z.number(),
40
+ longitude: z.number(),
41
+ });
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const ApprovalStatusValues: readonly ["pending", "approved", "rejected", "none"];
3
+ export declare const ApprovalStatusSchema: z.ZodEnum<["pending", "approved", "rejected", "none"]>;
4
+ export type ApprovalStatus = z.infer<typeof ApprovalStatusSchema>;
@@ -0,0 +1,10 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const ApprovalStatusValues = [
5
+ 'pending',
6
+ 'approved',
7
+ 'rejected',
8
+ 'none',
9
+ ];
10
+ export const ApprovalStatusSchema = z.enum(ApprovalStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const AvailabilityStatusValues: readonly ["available", "unavailable", "unknown"];
3
+ export declare const AvailabilityStatusSchema: z.ZodEnum<["available", "unavailable", "unknown"]>;
4
+ export type AvailabilityStatus = z.infer<typeof AvailabilityStatusSchema>;
@@ -0,0 +1,9 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const AvailabilityStatusValues = [
5
+ 'available',
6
+ 'unavailable',
7
+ 'unknown',
8
+ ];
9
+ export const AvailabilityStatusSchema = z.enum(AvailabilityStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const ConditionStatusValues: readonly ["not_applicable", "unknown", "missing", "damaged", "ok"];
3
+ export declare const ConditionStatusSchema: z.ZodEnum<["not_applicable", "unknown", "missing", "damaged", "ok"]>;
4
+ export type ConditionStatus = z.infer<typeof ConditionStatusSchema>;
@@ -0,0 +1,11 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const ConditionStatusValues = [
5
+ 'not_applicable',
6
+ 'unknown',
7
+ 'missing',
8
+ 'damaged',
9
+ 'ok',
10
+ ];
11
+ export const ConditionStatusSchema = z.enum(ConditionStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const DelayStatusValues: readonly ["ontime", "delayed", "early", "none"];
3
+ export declare const DelayStatusSchema: z.ZodEnum<["ontime", "delayed", "early", "none"]>;
4
+ export type DelayStatus = z.infer<typeof DelayStatusSchema>;
@@ -0,0 +1,10 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const DelayStatusValues = [
5
+ 'ontime',
6
+ 'delayed',
7
+ 'early',
8
+ 'none',
9
+ ];
10
+ export const DelayStatusSchema = z.enum(DelayStatusValues);
@@ -0,0 +1,12 @@
1
+ export * from './approval.js';
2
+ export * from './availability.js';
3
+ export * from './condition.js';
4
+ export * from './delay.js';
5
+ export * from './lifecycle.js';
6
+ export * from './operational.js';
7
+ export * from './processing.js';
8
+ export * from './publish.js';
9
+ export * from './seen.js';
10
+ export * from './system.js';
11
+ export * from './ticketing.js';
12
+ export * from './validity.js';
@@ -0,0 +1,12 @@
1
+ export * from './approval.js';
2
+ export * from './availability.js';
3
+ export * from './condition.js';
4
+ export * from './delay.js';
5
+ export * from './lifecycle.js';
6
+ export * from './operational.js';
7
+ export * from './processing.js';
8
+ export * from './publish.js';
9
+ export * from './seen.js';
10
+ export * from './system.js';
11
+ export * from './ticketing.js';
12
+ export * from './validity.js';
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const LifecycleStatusValues: readonly ["draft", "active", "inactive", "provisional", "seasonal", "voided"];
3
+ export declare const LifecycleStatusSchema: z.ZodEnum<["draft", "active", "inactive", "provisional", "seasonal", "voided"]>;
4
+ export type LifecycleStatus = z.infer<typeof LifecycleStatusSchema>;
@@ -0,0 +1,12 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const LifecycleStatusValues = [
5
+ 'draft',
6
+ 'active',
7
+ 'inactive',
8
+ 'provisional',
9
+ 'seasonal',
10
+ 'voided',
11
+ ];
12
+ export const LifecycleStatusSchema = z.enum(LifecycleStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const OperationalStatusValues: readonly ["ended", "missed", "running", "scheduled"];
3
+ export declare const OperationalStatusSchema: z.ZodEnum<["ended", "missed", "running", "scheduled"]>;
4
+ export type OperationalStatus = z.infer<typeof OperationalStatusSchema>;
@@ -0,0 +1,10 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const OperationalStatusValues = [
5
+ 'ended',
6
+ 'missed',
7
+ 'running',
8
+ 'scheduled',
9
+ ];
10
+ export const OperationalStatusSchema = z.enum(OperationalStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const ProcessingStatusValues: readonly ["waiting", "processing", "complete", "error", "skipped"];
3
+ export declare const ProcessingStatusSchema: z.ZodEnum<["waiting", "processing", "complete", "error", "skipped"]>;
4
+ export type ProcessingStatus = z.infer<typeof ProcessingStatusSchema>;
@@ -0,0 +1,11 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const ProcessingStatusValues = [
5
+ 'waiting',
6
+ 'processing',
7
+ 'complete',
8
+ 'error',
9
+ 'skipped',
10
+ ];
11
+ export const ProcessingStatusSchema = z.enum(ProcessingStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const PublishStatusValues: readonly ["published", "archived", "draft"];
3
+ export declare const PublishStatusSchema: z.ZodEnum<["published", "archived", "draft"]>;
4
+ export type PublishStatus = z.infer<typeof PublishStatusSchema>;
@@ -0,0 +1,9 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const PublishStatusValues = [
5
+ 'published',
6
+ 'archived',
7
+ 'draft',
8
+ ];
9
+ export const PublishStatusSchema = z.enum(PublishStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const SeenStatusValues: readonly ["unseen", "seen", "gone"];
3
+ export declare const SeenStatusSchema: z.ZodEnum<["unseen", "seen", "gone"]>;
4
+ export type SeenStatus = z.infer<typeof SeenStatusSchema>;
@@ -0,0 +1,9 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const SeenStatusValues = [
5
+ 'unseen',
6
+ 'seen',
7
+ 'gone',
8
+ ];
9
+ export const SeenStatusSchema = z.enum(SeenStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const SystemStatusValues: readonly ["waiting", "incomplete", "complete", "error"];
3
+ export declare const SystemStatusSchema: z.ZodEnum<["waiting", "incomplete", "complete", "error"]>;
4
+ export type SystemStatus = z.infer<typeof SystemStatusSchema>;
@@ -0,0 +1,10 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const SystemStatusValues = [
5
+ 'waiting',
6
+ 'incomplete',
7
+ 'complete',
8
+ 'error',
9
+ ];
10
+ export const SystemStatusSchema = z.enum(SystemStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const TicketingStatusValues: readonly ["has_ticketing", "no_ticketing"];
3
+ export declare const TicketingStatusSchema: z.ZodEnum<["has_ticketing", "no_ticketing"]>;
4
+ export type TicketingStatus = z.infer<typeof TicketingStatusSchema>;
@@ -0,0 +1,8 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const TicketingStatusValues = [
5
+ 'has_ticketing',
6
+ 'no_ticketing',
7
+ ];
8
+ export const TicketingStatusSchema = z.enum(TicketingStatusValues);
@@ -0,0 +1,4 @@
1
+ import { z } from 'zod';
2
+ export declare const ValidityStatusValues: readonly ["valid", "invalid", "unknown"];
3
+ export declare const ValidityStatusSchema: z.ZodEnum<["valid", "invalid", "unknown"]>;
4
+ export type ValidityStatus = z.infer<typeof ValidityStatusSchema>;
@@ -0,0 +1,9 @@
1
+ /* * */
2
+ import { z } from 'zod';
3
+ /* * */
4
+ export const ValidityStatusValues = [
5
+ 'valid',
6
+ 'invalid',
7
+ 'unknown',
8
+ ];
9
+ export const ValidityStatusSchema = z.enum(ValidityStatusValues);
@@ -0,0 +1,83 @@
1
+ /**
2
+ * A type that represents either a single instance of type T or an array of type T.
3
+ *
4
+ * @template T - The type of the element(s).
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * function processItems<T>(items: OneOrMore<T>) {
9
+ * const arr = Array.isArray(items) ? items : [items];
10
+ * console.log(arr);
11
+ * }
12
+ *
13
+ * processItems("apple"); // ["apple"]
14
+ * processItems(["a", "b"]); // ["a", "b"]
15
+ * ```
16
+ */
17
+ export type OneOrMore<T> = T | T[];
18
+ /**
19
+ * A type that represents either A or B, but not both.
20
+ *
21
+ * @template A - The first type.
22
+ * @template B - The second type.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * type Credentials = OneOrTheOther<{ email: string }, { username: string }>;
27
+ *
28
+ * const a: Credentials = { email: "a@b.com" }; // ✅
29
+ * const b: Credentials = { username: "user1" }; // ✅
30
+ * const c: Credentials = { email: "a@b.com", username: "user1" }; // ❌
31
+ * ```
32
+ */
33
+ export type OneOrTheOther<A, B> = (A & {
34
+ [K in keyof B]?: never;
35
+ }) | (B & {
36
+ [K in keyof A]?: never;
37
+ });
38
+ /**
39
+ * A type that represents exactly one key-value pair in the object T.
40
+ *
41
+ * @template T - The type of the object.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ type Action = ExactlyOne<{
46
+ create: { name: string };
47
+ update: { id: string; name?: string };
48
+ delete: { id: string };
49
+ }>;
50
+
51
+ const x: Action = { create: { name: "New" } }; // ✅
52
+ const y: Action = { update: { id: "123" } }; // ✅
53
+ const z: Action = { create: { name: "X" }, delete: { id: "1" } }; // ❌
54
+ * ```
55
+ */
56
+ export type ExactlyOne<T> = {
57
+ [K in keyof T]: Partial<Record<Exclude<keyof T, K>, never>> & {
58
+ [P in K]: T[P];
59
+ };
60
+ }[keyof T];
61
+ /**
62
+ * A type that represents either none or exactly one key-value pair in the object T.
63
+ *
64
+ * @template T - The type of the object.
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * type Filters = { name: string; age: number; email: string };
69
+ * type FilterChoice = NoneOrExactlyOne<Filters>;
70
+ *
71
+ * const a: FilterChoice = {}; // ✅ none
72
+ * const b: FilterChoice = { name: "Alice" }; // ✅ exactly one
73
+ * const c: FilterChoice = { age: 30 }; // ✅ exactly one
74
+ * const d: FilterChoice = { name: "Alice", age: 30 }; // ❌ error
75
+ * ```
76
+ */
77
+ export type NoneOrExactlyOne<T> = {
78
+ [K in keyof T]: Partial<Record<Exclude<keyof T, K>, never>> & {
79
+ [P in K]: T[P];
80
+ };
81
+ }[keyof T] | {
82
+ [K in keyof T]?: never;
83
+ };
@@ -0,0 +1 @@
1
+ export {};
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@tmlmobilidade/go-types-shared",
3
+ "version": "20260611.1527.25",
4
+ "author": {
5
+ "email": "iso@tmlmobilidade.pt",
6
+ "name": "TML-ISO"
7
+ },
8
+ "license": "AGPL-3.0-or-later",
9
+ "homepage": "https://go.tmlmobilidade.pt",
10
+ "bugs": {
11
+ "url": "https://github.com/tmlmobilidade/go/issues"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/tmlmobilidade/go.git"
16
+ },
17
+ "keywords": [
18
+ "public transit",
19
+ "tml",
20
+ "transportes metropolitanos de lisboa",
21
+ "go"
22
+ ],
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "type": "module",
27
+ "files": [
28
+ "dist"
29
+ ],
30
+ "main": "./dist/index.js",
31
+ "types": "./dist/index.d.ts",
32
+ "scripts": {
33
+ "build": "tsc && resolve-tspaths",
34
+ "lint": "eslint ./src/ && tsc --noEmit",
35
+ "lint:fix": "eslint ./src/ --fix",
36
+ "watch": "tsc-watch --onSuccess 'resolve-tspaths'"
37
+ },
38
+ "dependencies": {
39
+ "luxon": "3.7.2",
40
+ "zod": "3.25.76"
41
+ },
42
+ "devDependencies": {
43
+ "@tmlmobilidade/tsconfig": "*",
44
+ "@types/luxon": "3.7.1",
45
+ "@types/node": "25.9.3",
46
+ "resolve-tspaths": "0.8.23",
47
+ "tsc-watch": "7.2.0",
48
+ "typescript": "6.0.3"
49
+ }
50
+ }