@1mtx/did-api-contract 1.1.1 → 1.1.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.
package/dist/index.d.mts CHANGED
@@ -1737,7 +1737,7 @@ declare const orgCrudContract: {
1737
1737
  }>;
1738
1738
  };
1739
1739
  };
1740
- create: {
1740
+ createOrg: {
1741
1741
  metadata: {
1742
1742
  openApiTags: string[];
1743
1743
  openApiSecurity: {
@@ -1805,7 +1805,7 @@ declare const orgCrudContract: {
1805
1805
  }>;
1806
1806
  };
1807
1807
  };
1808
- list: {
1808
+ listOrgs: {
1809
1809
  metadata: {
1810
1810
  openApiTags: string[];
1811
1811
  openApiSecurity: {
@@ -1857,7 +1857,7 @@ declare const orgCrudContract: {
1857
1857
  }>;
1858
1858
  };
1859
1859
  };
1860
- getById: {
1860
+ getOrgById: {
1861
1861
  metadata: {
1862
1862
  openApiTags: string[];
1863
1863
  openApiSecurity: {
@@ -1957,7 +1957,7 @@ declare const orgCrudContract: {
1957
1957
  }>;
1958
1958
  };
1959
1959
  };
1960
- update: {
1960
+ updateOrg: {
1961
1961
  metadata: {
1962
1962
  openApiTags: string[];
1963
1963
  openApiSecurity: {
@@ -2039,7 +2039,7 @@ declare const orgCrudContract: {
2039
2039
  }>;
2040
2040
  };
2041
2041
  };
2042
- delete: {
2042
+ deleteOrg: {
2043
2043
  metadata: {
2044
2044
  openApiTags: string[];
2045
2045
  openApiSecurity: {
@@ -2662,7 +2662,7 @@ declare const organisationsContract: {
2662
2662
  }>;
2663
2663
  };
2664
2664
  };
2665
- create: {
2665
+ createOrg: {
2666
2666
  metadata: {
2667
2667
  openApiTags: string[];
2668
2668
  openApiSecurity: {
@@ -2730,7 +2730,7 @@ declare const organisationsContract: {
2730
2730
  }>;
2731
2731
  };
2732
2732
  };
2733
- list: {
2733
+ listOrgs: {
2734
2734
  metadata: {
2735
2735
  openApiTags: string[];
2736
2736
  openApiSecurity: {
@@ -2782,7 +2782,7 @@ declare const organisationsContract: {
2782
2782
  }>;
2783
2783
  };
2784
2784
  };
2785
- getById: {
2785
+ getOrgById: {
2786
2786
  metadata: {
2787
2787
  openApiTags: string[];
2788
2788
  openApiSecurity: {
@@ -2882,7 +2882,7 @@ declare const organisationsContract: {
2882
2882
  }>;
2883
2883
  };
2884
2884
  };
2885
- update: {
2885
+ updateOrg: {
2886
2886
  metadata: {
2887
2887
  openApiTags: string[];
2888
2888
  openApiSecurity: {
@@ -2964,7 +2964,7 @@ declare const organisationsContract: {
2964
2964
  }>;
2965
2965
  };
2966
2966
  };
2967
- delete: {
2967
+ deleteOrg: {
2968
2968
  metadata: {
2969
2969
  openApiTags: string[];
2970
2970
  openApiSecurity: {
@@ -4590,7 +4590,7 @@ declare const contract: {
4590
4590
  }>;
4591
4591
  };
4592
4592
  };
4593
- create: {
4593
+ createOrg: {
4594
4594
  metadata: {
4595
4595
  openApiTags: string[];
4596
4596
  openApiSecurity: {
@@ -4658,7 +4658,7 @@ declare const contract: {
4658
4658
  }>;
4659
4659
  };
4660
4660
  };
4661
- list: {
4661
+ listOrgs: {
4662
4662
  metadata: {
4663
4663
  openApiTags: string[];
4664
4664
  openApiSecurity: {
@@ -4710,7 +4710,7 @@ declare const contract: {
4710
4710
  }>;
4711
4711
  };
4712
4712
  };
4713
- getById: {
4713
+ getOrgById: {
4714
4714
  metadata: {
4715
4715
  openApiTags: string[];
4716
4716
  openApiSecurity: {
@@ -4810,7 +4810,7 @@ declare const contract: {
4810
4810
  }>;
4811
4811
  };
4812
4812
  };
4813
- update: {
4813
+ updateOrg: {
4814
4814
  metadata: {
4815
4815
  openApiTags: string[];
4816
4816
  openApiSecurity: {
@@ -4892,7 +4892,7 @@ declare const contract: {
4892
4892
  }>;
4893
4893
  };
4894
4894
  };
4895
- delete: {
4895
+ deleteOrg: {
4896
4896
  metadata: {
4897
4897
  openApiTags: string[];
4898
4898
  openApiSecurity: {
package/dist/index.d.ts CHANGED
@@ -1737,7 +1737,7 @@ declare const orgCrudContract: {
1737
1737
  }>;
1738
1738
  };
1739
1739
  };
1740
- create: {
1740
+ createOrg: {
1741
1741
  metadata: {
1742
1742
  openApiTags: string[];
1743
1743
  openApiSecurity: {
@@ -1805,7 +1805,7 @@ declare const orgCrudContract: {
1805
1805
  }>;
1806
1806
  };
1807
1807
  };
1808
- list: {
1808
+ listOrgs: {
1809
1809
  metadata: {
1810
1810
  openApiTags: string[];
1811
1811
  openApiSecurity: {
@@ -1857,7 +1857,7 @@ declare const orgCrudContract: {
1857
1857
  }>;
1858
1858
  };
1859
1859
  };
1860
- getById: {
1860
+ getOrgById: {
1861
1861
  metadata: {
1862
1862
  openApiTags: string[];
1863
1863
  openApiSecurity: {
@@ -1957,7 +1957,7 @@ declare const orgCrudContract: {
1957
1957
  }>;
1958
1958
  };
1959
1959
  };
1960
- update: {
1960
+ updateOrg: {
1961
1961
  metadata: {
1962
1962
  openApiTags: string[];
1963
1963
  openApiSecurity: {
@@ -2039,7 +2039,7 @@ declare const orgCrudContract: {
2039
2039
  }>;
2040
2040
  };
2041
2041
  };
2042
- delete: {
2042
+ deleteOrg: {
2043
2043
  metadata: {
2044
2044
  openApiTags: string[];
2045
2045
  openApiSecurity: {
@@ -2662,7 +2662,7 @@ declare const organisationsContract: {
2662
2662
  }>;
2663
2663
  };
2664
2664
  };
2665
- create: {
2665
+ createOrg: {
2666
2666
  metadata: {
2667
2667
  openApiTags: string[];
2668
2668
  openApiSecurity: {
@@ -2730,7 +2730,7 @@ declare const organisationsContract: {
2730
2730
  }>;
2731
2731
  };
2732
2732
  };
2733
- list: {
2733
+ listOrgs: {
2734
2734
  metadata: {
2735
2735
  openApiTags: string[];
2736
2736
  openApiSecurity: {
@@ -2782,7 +2782,7 @@ declare const organisationsContract: {
2782
2782
  }>;
2783
2783
  };
2784
2784
  };
2785
- getById: {
2785
+ getOrgById: {
2786
2786
  metadata: {
2787
2787
  openApiTags: string[];
2788
2788
  openApiSecurity: {
@@ -2882,7 +2882,7 @@ declare const organisationsContract: {
2882
2882
  }>;
2883
2883
  };
2884
2884
  };
2885
- update: {
2885
+ updateOrg: {
2886
2886
  metadata: {
2887
2887
  openApiTags: string[];
2888
2888
  openApiSecurity: {
@@ -2964,7 +2964,7 @@ declare const organisationsContract: {
2964
2964
  }>;
2965
2965
  };
2966
2966
  };
2967
- delete: {
2967
+ deleteOrg: {
2968
2968
  metadata: {
2969
2969
  openApiTags: string[];
2970
2970
  openApiSecurity: {
@@ -4590,7 +4590,7 @@ declare const contract: {
4590
4590
  }>;
4591
4591
  };
4592
4592
  };
4593
- create: {
4593
+ createOrg: {
4594
4594
  metadata: {
4595
4595
  openApiTags: string[];
4596
4596
  openApiSecurity: {
@@ -4658,7 +4658,7 @@ declare const contract: {
4658
4658
  }>;
4659
4659
  };
4660
4660
  };
4661
- list: {
4661
+ listOrgs: {
4662
4662
  metadata: {
4663
4663
  openApiTags: string[];
4664
4664
  openApiSecurity: {
@@ -4710,7 +4710,7 @@ declare const contract: {
4710
4710
  }>;
4711
4711
  };
4712
4712
  };
4713
- getById: {
4713
+ getOrgById: {
4714
4714
  metadata: {
4715
4715
  openApiTags: string[];
4716
4716
  openApiSecurity: {
@@ -4810,7 +4810,7 @@ declare const contract: {
4810
4810
  }>;
4811
4811
  };
4812
4812
  };
4813
- update: {
4813
+ updateOrg: {
4814
4814
  metadata: {
4815
4815
  openApiTags: string[];
4816
4816
  openApiSecurity: {
@@ -4892,7 +4892,7 @@ declare const contract: {
4892
4892
  }>;
4893
4893
  };
4894
4894
  };
4895
- delete: {
4895
+ deleteOrg: {
4896
4896
  metadata: {
4897
4897
  openApiTags: string[];
4898
4898
  openApiSecurity: {
package/dist/index.js CHANGED
@@ -570,7 +570,7 @@ var orgCrudContract = c8.router({
570
570
  summary: "Get VP request for creating an organisation",
571
571
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
572
572
  },
573
- create: {
573
+ createOrg: {
574
574
  method: "POST",
575
575
  path: "/v1/organisations",
576
576
  body: CreateOrganisationSchema,
@@ -582,7 +582,7 @@ var orgCrudContract = c8.router({
582
582
  summary: "Create a new organisation (requires CCCD VP)",
583
583
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
584
584
  },
585
- list: {
585
+ listOrgs: {
586
586
  method: "GET",
587
587
  path: "/v1/organisations",
588
588
  responses: {
@@ -592,7 +592,7 @@ var orgCrudContract = c8.router({
592
592
  summary: "List user's organisations",
593
593
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
594
594
  },
595
- getById: {
595
+ getOrgById: {
596
596
  method: "GET",
597
597
  path: "/v1/organisations/:orgId",
598
598
  responses: {
@@ -604,7 +604,7 @@ var orgCrudContract = c8.router({
604
604
  summary: "Get organisation details (members only)",
605
605
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
606
606
  },
607
- update: {
607
+ updateOrg: {
608
608
  method: "PATCH",
609
609
  path: "/v1/organisations/:orgId",
610
610
  body: UpdateOrganisationSchema,
@@ -618,7 +618,7 @@ var orgCrudContract = c8.router({
618
618
  summary: "Update organisation details (owner/admin only)",
619
619
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
620
620
  },
621
- delete: {
621
+ deleteOrg: {
622
622
  method: "DELETE",
623
623
  path: "/v1/organisations/:orgId",
624
624
  body: c8.noBody(),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/v1/auth.ts","../src/v1/events.ts","../src/v1/checkin.ts","../src/v1/turn.ts","../src/v1/uploads.ts","../src/v1/tracking.ts","../src/v1/config.ts","../src/v1/organisations.ts"],"sourcesContent":["import { initContract } from '@ts-rest/core';\nimport { authContract } from './v1/auth';\nimport { eventsContract } from './v1/events';\nimport { checkinContract } from './v1/checkin';\nimport { turnContract } from './v1/turn';\nimport { uploadsContract } from './v1/uploads';\nimport { trackingContract } from './v1/tracking';\nimport { appConfigContract } from './v1/config';\nimport { organisationsContract } from './v1/organisations';\n\nexport * from './v1';\n\nconst c = initContract();\n\nexport const contract = c.router({\n v1: c.router({\n auth: authContract,\n events: eventsContract,\n checkin: checkinContract,\n turn: turnContract,\n uploads: uploadsContract,\n tracking: trackingContract,\n config: appConfigContract,\n organisations: organisationsContract,\n }),\n});\n\nexport type Contract = typeof contract;\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const AuthScheme = z.enum(['eip191']);\nexport type AuthScheme = z.infer<typeof AuthScheme>;\n\nexport const VerifyRequestSchema = z.object({\n did: z.string().min(1).describe('DID of the authenticating user (e.g. `did:ethr:0xABC...` or `did:vbsn:0xABC...`)'),\n signature: z\n .string()\n .min(1)\n .describe(\n 'Hex signature of the `message` string, produced by the scheme specified in the message',\n ),\n message: z\n .string()\n .min(1)\n .describe(\n 'Canonical JSON string that was signed. Must be `JSON.stringify({ domain, did, issuedAt, scheme })` where `issuedAt` is an ISO-8601 UTC timestamp within the last 60 seconds and `scheme` is the signing scheme used.',\n ),\n});\n\nexport const VerifyResponseSchema = z.object({\n accessToken: z.string(),\n});\n\nexport const authContract = c.router({\n verify: {\n method: 'POST',\n path: '/v1/auth/verify',\n body: VerifyRequestSchema,\n responses: {\n 200: VerifyResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n },\n summary: 'Verify DID signature and receive JWT',\n description: [\n '## Authentication Flow (1-turn)',\n '',\n 'The client constructs a JSON message, signs it with their Ethereum private key, and submits everything in a single request.',\n '',\n '### Crypto Suite',\n '',\n '| Property | Value |',\n '|----------|-------|',\n '| **Signing scheme** | ECDSA secp256k1 (`scheme: \"eip191\"`) |',\n '| **Signature format** | [EIP-191](https://eips.ethereum.org/EIPS/eip-191) `personal_sign` (65-byte `r‖s‖v`, hex-encoded with `0x` prefix) |',\n '| **DID method** | `did:ethr` or `did:vbsn` — the Ethereum address in the DID must match the signer |',\n '| **Message encoding** | UTF-8 JSON string |',\n '',\n '### Steps',\n '',\n '1. **Build the message** — a canonical JSON string:',\n ' ```json',\n ' {\"domain\":\"1Matrix Events\",\"did\":\"did:ethr:0xYOUR_ADDRESS\",\"issuedAt\":\"2026-02-25T12:00:00.000Z\",\"scheme\":\"eip191\"}',\n ' ```',\n ' Use the `buildAuthMessage(did)` helper from `@1mtx/did-api-contract`, or construct it manually.',\n '',\n '2. **Sign the message** using EIP-191 `personal_sign`:',\n ' ```ts',\n ' // ethers.js v6',\n ' const signature = await wallet.signMessage(message);',\n ' ```',\n '',\n '3. **POST** `{ did, signature, message }` to this endpoint.',\n '',\n '### Validation Rules',\n '',\n '- `issuedAt` must be within **60 seconds in the past** or **5 seconds in the future** (clock tolerance).',\n '- `domain` must equal `\"1Matrix Events\"`.',\n '- `did` in the message must match the `did` in the request body.',\n '- `scheme` must be a supported value (currently only `\"eip191\"`).',\n '- No extra JSON keys beyond `domain`, `did`, `issuedAt`, `scheme` are allowed.',\n '',\n '### Error Codes',\n '',\n '| Status | Reason |',\n '|--------|--------|',\n '| `400` | Invalid message format (bad JSON, extra keys, wrong domain) |',\n '| `401` | Message expired, DID mismatch, invalid or non-matching signature |',\n ].join('\\n'),\n metadata: { openApiTags: ['Auth'], openApiSecurity: [] },\n },\n});\n\n/**\n * Builds the canonical JSON string to be signed by the client.\n *\n * Usage:\n * const message = buildAuthMessage(did);\n * const signature = await wallet.signMessage(message);\n * // POST /v1/auth/verify { did, signature, message }\n */\nexport function buildAuthMessage(\n did: string,\n scheme: AuthScheme = 'eip191',\n domain = '1Matrix Events',\n issuedAt: string = new Date().toISOString(),\n): string {\n return JSON.stringify({ domain, did, issuedAt, scheme });\n}\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const SUPPORTED_FIELDS = [\n 'documentNumber',\n 'fullName',\n 'dateOfBirth',\n 'gender',\n 'nationality',\n 'ethnicity',\n 'hometown',\n 'permanentAddress',\n 'identifyingMarks',\n 'issueDate',\n 'expiryDate',\n 'fatherName',\n 'motherName',\n 'photo',\n] as const;\n\nexport type SupportedField = (typeof SUPPORTED_FIELDS)[number];\n\nexport const CreateEventSchema = z.object({\n name: z.string().min(1).max(255).describe('Tên sự kiện'),\n coverImageId: z.string().optional().describe('ID ảnh bìa sự kiện'),\n description: z.string().optional().describe('Mô tả sự kiện'),\n maxGuests: z.number().int().positive().describe('Số lượng khách tối đa'),\n startDateTime: z.string().datetime().describe('Thời gian bắt đầu sự kiện'),\n endDateTime: z.string().datetime().describe('Thời gian kết thúc sự kiện'),\n requestedFields: z.array(z.enum(SUPPORTED_FIELDS)).min(1).describe('Các trường dữ liệu yêu cầu xác thực'),\n});\n\nexport const UpdateEventSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n coverImageId: z.string().nullable().optional(),\n description: z.string().nullable().optional(),\n maxGuests: z.number().int().positive().optional(),\n startDateTime: z.string().datetime().optional(),\n endDateTime: z.string().datetime().optional(),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']).optional(),\n});\n\nexport const ParticipantSchema = z.object({\n id: z.string(),\n holderDid: z.string(),\n disclosedFields: z.record(z.unknown()),\n checkedInAt: z.string(),\n});\n\nexport const EventResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n maxGuests: z.number(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n userId: z.string(),\n requestedFields: z.array(z.string()),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']),\n participantCount: z.number(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const EventDetailResponseSchema = EventResponseSchema.extend({\n participants: z.array(ParticipantSchema),\n vpRequest: z.record(z.unknown()),\n});\n\nexport const EventDiscoverSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n participantCount: z.number(),\n});\n\nconst SECURITY = [{ bearerAuth: [] }];\n\nexport const eventsContract = c.router({\n discover: {\n method: 'GET',\n path: '/v1/events/public/discover',\n responses: {\n 200: z.array(EventDiscoverSchema),\n },\n summary: 'List public events for discovery (public)',\n metadata: { openApiTags: ['Events'], openApiSecurity: [] },\n },\n create: {\n method: 'POST',\n path: '/v1/events',\n body: CreateEventSchema,\n responses: {\n 201: EventResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n },\n summary: 'Create a new event (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n list: {\n method: 'GET',\n path: '/v1/events',\n responses: {\n 200: z.array(EventResponseSchema),\n 401: z.object({ message: z.string() }),\n },\n summary: \"List authenticated organiser's events\",\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n getById: {\n method: 'GET',\n path: '/v1/events/:id',\n responses: {\n 200: EventDetailResponseSchema,\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Get event details including participants (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n update: {\n method: 'PATCH',\n path: '/v1/events/:id',\n body: UpdateEventSchema,\n responses: {\n 200: EventResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Update event fields (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n delete: {\n method: 'DELETE',\n path: '/v1/events/:id',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Delete event and all related data (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n getCredentials: {\n method: 'GET',\n path: '/v1/events/:id/credentials',\n responses: {\n 200: z.array(z.record(z.unknown())),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'List issued VCs for event (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const EventPublicInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n maxGuests: z.number(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n currentGuests: z.number(),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']),\n});\n\nexport const CheckinInfoResponseSchema = z.object({\n event: EventPublicInfoSchema,\n vpRequest: z.record(z.unknown()),\n});\n\nexport const CheckinSubmitRequestSchema = z.object({\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const CheckinSubmitResponseSchema = z.object({\n success: z.literal(true),\n credential: z.record(z.unknown()),\n});\n\nexport const checkinContract = c.router({\n info: {\n method: 'GET',\n path: '/v1/checkin/:eventId/info',\n responses: {\n 200: CheckinInfoResponseSchema,\n 400: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Get event info and VP request for check-in (public)',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [] },\n },\n submit: {\n method: 'POST',\n path: '/v1/checkin/:eventId/submit',\n body: CheckinSubmitRequestSchema,\n responses: {\n 200: CheckinSubmitResponseSchema,\n 400: z.object({ message: z.string(), errors: z.array(z.string()).optional() }),\n 401: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n 409: z.object({ message: z.string() }),\n },\n summary: 'Submit VP for event check-in — issues participation VC on success',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n myCheckins: {\n method: 'GET',\n path: '/v1/checkin/my',\n responses: {\n 200: z.array(\n z.object({\n id: z.string(),\n eventId: z.string(),\n checkedInAt: z.string(),\n disclosedFields: z.record(z.unknown()),\n event: EventPublicInfoSchema,\n }),\n ),\n 401: z.object({ message: z.string() }),\n },\n summary: 'List authenticated user check-ins',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nconst IceServerSchema = z.object({\n urls: z.union([z.string(), z.array(z.string())]),\n username: z.string().optional(),\n credential: z.string().optional(),\n});\n\nexport const TurnCredentialsResponseSchema = z.object({\n iceServers: z.array(IceServerSchema),\n});\n\nexport const turnContract = c.router({\n credentials: {\n method: 'GET',\n path: '/v1/turn/credentials',\n responses: {\n 200: TurnCredentialsResponseSchema,\n 401: z.object({ message: z.string() }),\n 502: z.object({ message: z.string() }),\n },\n summary: 'Get Cloudflare TURN credentials for WebRTC (authenticated)',\n metadata: { openApiTags: ['TURN'] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const UploadPresignedUrlSchema = z.object({\n fileId: z.string(),\n original: z.object({\n uploadUrl: z.string(),\n key: z.string(),\n publicUrl: z.string(),\n }),\n resize: z.object({\n uploadUrl: z.string(),\n key: z.string(),\n publicUrl: z.string(),\n }),\n});\n\nexport const uploadsContract = c.router(\n {\n generatePresignedUrls: {\n method: 'POST',\n path: '/urls',\n body: z.object({}),\n responses: {\n 201: UploadPresignedUrlSchema,\n },\n summary: 'Generate pre-signed URLs for event image upload',\n metadata: { openApiTags: ['Uploads'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n },\n {\n pathPrefix: '/v1/uploads',\n },\n);\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const TrackScanRequestSchema = z.object({\n platform: z.string(),\n appVersion: z.string().optional(),\n});\n\nexport const TrackScanResponseSchema = z.object({\n id: z.string(),\n});\n\nexport const trackingContract = c.router({\n scan: {\n method: 'POST',\n path: '/v1/tracking/scan',\n body: TrackScanRequestSchema,\n responses: {\n 201: TrackScanResponseSchema,\n 401: z.object({ message: z.string() }),\n },\n summary: 'Record a successful NFC scan event',\n metadata: { openApiTags: ['Tracking'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const appConfigContract = c.router({\n appConfig: {\n method: 'GET',\n path: '/v1/config/app',\n responses: {\n 200: z.object({\n demoMode: z.object({ enabled: z.boolean() }),\n publicEvents: z.object({ enabled: z.boolean() }),\n }),\n },\n summary: 'Get app configuration (public)',\n metadata: { openApiTags: ['Config'], openApiSecurity: [] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nconst SECURITY = [{ bearerAuth: [] }];\n\n// --- Zod Schemas ---\n\nexport const CreateOrganisationSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().optional(),\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const UpdateOrganisationSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n description: z.string().nullable().optional(),\n avatarUrl: z.string().nullable().optional(),\n});\n\nexport const OrgResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n didUri: z.string().nullable(),\n memberCount: z.number(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const OrgListItemSchema = OrgResponseSchema.extend({\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n});\n\nexport const OrgDetailResponseSchema = OrgListItemSchema.extend({\n members: z.array(z.object({\n id: z.string(),\n userId: z.string(),\n displayName: z.string().nullable(),\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n joinedAt: z.string(),\n })),\n});\n\nexport const MemberResponseSchema = z.object({\n id: z.string(),\n userId: z.string(),\n displayName: z.string().nullable(),\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n joinedAt: z.string(),\n});\n\nexport const UpdateMemberRoleSchema = z.object({\n role: z.enum(['ADMIN', 'ISSUER', 'MEMBER']),\n});\n\nexport const CreateInvitationSchema = z.object({\n expiresInDays: z.number().int().positive().default(7).optional(),\n});\n\nexport const InvitationResponseSchema = z.object({\n id: z.string(),\n orgId: z.string(),\n orgName: z.string(),\n token: z.string(),\n status: z.enum(['PENDING', 'SUBMITTED', 'ACCEPTED', 'DECLINED', 'EXPIRED']),\n inviteeDisplayName: z.string().nullable(),\n createdAt: z.string(),\n expiresAt: z.string(),\n});\n\nexport const JoinInvitationSchema = z.object({\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const IssueVCSchema = z.object({\n holderDid: z.string(),\n credentialSubject: z.record(z.unknown()),\n type: z.array(z.string()).optional(),\n});\n\nconst ErrorSchema = z.object({ message: z.string() });\n\n// --- Sub-contracts ---\n\nconst VpRequestResponseSchema = z.object({\n vpRequest: z.record(z.unknown()),\n expiresAt: z.string(),\n});\n\nexport const orgCrudContract = c.router({\n createVpRequest: {\n method: 'POST',\n path: '/v1/organisations/vp-request',\n body: z.object({}),\n responses: {\n 200: VpRequestResponseSchema,\n 401: ErrorSchema,\n },\n summary: 'Get VP request for creating an organisation',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n create: {\n method: 'POST',\n path: '/v1/organisations',\n body: CreateOrganisationSchema,\n responses: {\n 201: OrgResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n },\n summary: 'Create a new organisation (requires CCCD VP)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n list: {\n method: 'GET',\n path: '/v1/organisations',\n responses: {\n 200: z.array(OrgListItemSchema),\n 401: ErrorSchema,\n },\n summary: \"List user's organisations\",\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n getById: {\n method: 'GET',\n path: '/v1/organisations/:orgId',\n responses: {\n 200: OrgDetailResponseSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Get organisation details (members only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n update: {\n method: 'PATCH',\n path: '/v1/organisations/:orgId',\n body: UpdateOrganisationSchema,\n responses: {\n 200: OrgResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Update organisation details (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n delete: {\n method: 'DELETE',\n path: '/v1/organisations/:orgId',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Delete organisation (owner only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgMembersContract = c.router({\n listMembers: {\n method: 'GET',\n path: '/v1/organisations/:orgId/members',\n responses: {\n 200: z.array(MemberResponseSchema),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List organisation members',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n updateMemberRole: {\n method: 'PATCH',\n path: '/v1/organisations/:orgId/members/:memberId',\n body: UpdateMemberRoleSchema,\n responses: {\n 200: MemberResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Update member role (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n removeMember: {\n method: 'DELETE',\n path: '/v1/organisations/:orgId/members/:memberId',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Remove member from organisation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgInvitationsContract = c.router({\n createInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations',\n body: CreateInvitationSchema,\n responses: {\n 201: InvitationResponseSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'Create invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listInvitations: {\n method: 'GET',\n path: '/v1/organisations/:orgId/invitations',\n responses: {\n 200: z.array(InvitationResponseSchema),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List pending invitations (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n joinVpRequest: {\n method: 'POST',\n path: '/v1/organisations/invitations/:token/vp-request',\n body: z.object({}),\n responses: {\n 200: VpRequestResponseSchema,\n 401: ErrorSchema,\n 404: ErrorSchema,\n 410: ErrorSchema,\n },\n summary: 'Get VP request for joining via invitation',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n joinInvitation: {\n method: 'POST',\n path: '/v1/organisations/invitations/:token/join',\n body: JoinInvitationSchema,\n responses: {\n 200: z.object({ message: z.string() }),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 410: ErrorSchema,\n },\n summary: 'Invitee submits CCCD VP to join',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n acceptInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations/:invitationId/accept',\n body: z.object({}),\n responses: {\n 200: z.object({ message: z.string(), memberId: z.string() }),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 409: ErrorSchema,\n },\n summary: 'Accept invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n declineInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations/:invitationId/decline',\n body: z.object({}),\n responses: {\n 200: z.object({ message: z.string() }),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 409: ErrorSchema,\n },\n summary: 'Decline invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgCredentialsContract = c.router({\n issueVC: {\n method: 'POST',\n path: '/v1/organisations/:orgId/credentials/issue',\n body: IssueVCSchema,\n responses: {\n 201: z.record(z.unknown()),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'Issue VC on behalf of organisation (owner/admin/issuer)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listIssuedCredentials: {\n method: 'GET',\n path: '/v1/organisations/:orgId/credentials',\n responses: {\n 200: z.array(z.object({\n id: z.string(),\n holderDid: z.string(),\n issuingMemberId: z.string(),\n credentialJson: z.record(z.unknown()),\n issuedAt: z.string(),\n })),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List issued credentials (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\n// Combined router for registration in the main contract\nexport const organisationsContract = c.router({\n crud: orgCrudContract,\n members: orgMembersContract,\n invitations: orgInvitationsContract,\n credentials: orgCredentialsContract,\n});\n"],"mappings":"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","names":["import_core","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","SECURITY","c"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/v1/auth.ts","../src/v1/events.ts","../src/v1/checkin.ts","../src/v1/turn.ts","../src/v1/uploads.ts","../src/v1/tracking.ts","../src/v1/config.ts","../src/v1/organisations.ts"],"sourcesContent":["import { initContract } from '@ts-rest/core';\nimport { authContract } from './v1/auth';\nimport { eventsContract } from './v1/events';\nimport { checkinContract } from './v1/checkin';\nimport { turnContract } from './v1/turn';\nimport { uploadsContract } from './v1/uploads';\nimport { trackingContract } from './v1/tracking';\nimport { appConfigContract } from './v1/config';\nimport { organisationsContract } from './v1/organisations';\n\nexport * from './v1';\n\nconst c = initContract();\n\nexport const contract = c.router({\n v1: c.router({\n auth: authContract,\n events: eventsContract,\n checkin: checkinContract,\n turn: turnContract,\n uploads: uploadsContract,\n tracking: trackingContract,\n config: appConfigContract,\n organisations: organisationsContract,\n }),\n});\n\nexport type Contract = typeof contract;\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const AuthScheme = z.enum(['eip191']);\nexport type AuthScheme = z.infer<typeof AuthScheme>;\n\nexport const VerifyRequestSchema = z.object({\n did: z.string().min(1).describe('DID of the authenticating user (e.g. `did:ethr:0xABC...` or `did:vbsn:0xABC...`)'),\n signature: z\n .string()\n .min(1)\n .describe(\n 'Hex signature of the `message` string, produced by the scheme specified in the message',\n ),\n message: z\n .string()\n .min(1)\n .describe(\n 'Canonical JSON string that was signed. Must be `JSON.stringify({ domain, did, issuedAt, scheme })` where `issuedAt` is an ISO-8601 UTC timestamp within the last 60 seconds and `scheme` is the signing scheme used.',\n ),\n});\n\nexport const VerifyResponseSchema = z.object({\n accessToken: z.string(),\n});\n\nexport const authContract = c.router({\n verify: {\n method: 'POST',\n path: '/v1/auth/verify',\n body: VerifyRequestSchema,\n responses: {\n 200: VerifyResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n },\n summary: 'Verify DID signature and receive JWT',\n description: [\n '## Authentication Flow (1-turn)',\n '',\n 'The client constructs a JSON message, signs it with their Ethereum private key, and submits everything in a single request.',\n '',\n '### Crypto Suite',\n '',\n '| Property | Value |',\n '|----------|-------|',\n '| **Signing scheme** | ECDSA secp256k1 (`scheme: \"eip191\"`) |',\n '| **Signature format** | [EIP-191](https://eips.ethereum.org/EIPS/eip-191) `personal_sign` (65-byte `r‖s‖v`, hex-encoded with `0x` prefix) |',\n '| **DID method** | `did:ethr` or `did:vbsn` — the Ethereum address in the DID must match the signer |',\n '| **Message encoding** | UTF-8 JSON string |',\n '',\n '### Steps',\n '',\n '1. **Build the message** — a canonical JSON string:',\n ' ```json',\n ' {\"domain\":\"1Matrix Events\",\"did\":\"did:ethr:0xYOUR_ADDRESS\",\"issuedAt\":\"2026-02-25T12:00:00.000Z\",\"scheme\":\"eip191\"}',\n ' ```',\n ' Use the `buildAuthMessage(did)` helper from `@1mtx/did-api-contract`, or construct it manually.',\n '',\n '2. **Sign the message** using EIP-191 `personal_sign`:',\n ' ```ts',\n ' // ethers.js v6',\n ' const signature = await wallet.signMessage(message);',\n ' ```',\n '',\n '3. **POST** `{ did, signature, message }` to this endpoint.',\n '',\n '### Validation Rules',\n '',\n '- `issuedAt` must be within **60 seconds in the past** or **5 seconds in the future** (clock tolerance).',\n '- `domain` must equal `\"1Matrix Events\"`.',\n '- `did` in the message must match the `did` in the request body.',\n '- `scheme` must be a supported value (currently only `\"eip191\"`).',\n '- No extra JSON keys beyond `domain`, `did`, `issuedAt`, `scheme` are allowed.',\n '',\n '### Error Codes',\n '',\n '| Status | Reason |',\n '|--------|--------|',\n '| `400` | Invalid message format (bad JSON, extra keys, wrong domain) |',\n '| `401` | Message expired, DID mismatch, invalid or non-matching signature |',\n ].join('\\n'),\n metadata: { openApiTags: ['Auth'], openApiSecurity: [] },\n },\n});\n\n/**\n * Builds the canonical JSON string to be signed by the client.\n *\n * Usage:\n * const message = buildAuthMessage(did);\n * const signature = await wallet.signMessage(message);\n * // POST /v1/auth/verify { did, signature, message }\n */\nexport function buildAuthMessage(\n did: string,\n scheme: AuthScheme = 'eip191',\n domain = '1Matrix Events',\n issuedAt: string = new Date().toISOString(),\n): string {\n return JSON.stringify({ domain, did, issuedAt, scheme });\n}\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const SUPPORTED_FIELDS = [\n 'documentNumber',\n 'fullName',\n 'dateOfBirth',\n 'gender',\n 'nationality',\n 'ethnicity',\n 'hometown',\n 'permanentAddress',\n 'identifyingMarks',\n 'issueDate',\n 'expiryDate',\n 'fatherName',\n 'motherName',\n 'photo',\n] as const;\n\nexport type SupportedField = (typeof SUPPORTED_FIELDS)[number];\n\nexport const CreateEventSchema = z.object({\n name: z.string().min(1).max(255).describe('Tên sự kiện'),\n coverImageId: z.string().optional().describe('ID ảnh bìa sự kiện'),\n description: z.string().optional().describe('Mô tả sự kiện'),\n maxGuests: z.number().int().positive().describe('Số lượng khách tối đa'),\n startDateTime: z.string().datetime().describe('Thời gian bắt đầu sự kiện'),\n endDateTime: z.string().datetime().describe('Thời gian kết thúc sự kiện'),\n requestedFields: z.array(z.enum(SUPPORTED_FIELDS)).min(1).describe('Các trường dữ liệu yêu cầu xác thực'),\n});\n\nexport const UpdateEventSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n coverImageId: z.string().nullable().optional(),\n description: z.string().nullable().optional(),\n maxGuests: z.number().int().positive().optional(),\n startDateTime: z.string().datetime().optional(),\n endDateTime: z.string().datetime().optional(),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']).optional(),\n});\n\nexport const ParticipantSchema = z.object({\n id: z.string(),\n holderDid: z.string(),\n disclosedFields: z.record(z.unknown()),\n checkedInAt: z.string(),\n});\n\nexport const EventResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n maxGuests: z.number(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n userId: z.string(),\n requestedFields: z.array(z.string()),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']),\n participantCount: z.number(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const EventDetailResponseSchema = EventResponseSchema.extend({\n participants: z.array(ParticipantSchema),\n vpRequest: z.record(z.unknown()),\n});\n\nexport const EventDiscoverSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n participantCount: z.number(),\n});\n\nconst SECURITY = [{ bearerAuth: [] }];\n\nexport const eventsContract = c.router({\n discover: {\n method: 'GET',\n path: '/v1/events/public/discover',\n responses: {\n 200: z.array(EventDiscoverSchema),\n },\n summary: 'List public events for discovery (public)',\n metadata: { openApiTags: ['Events'], openApiSecurity: [] },\n },\n create: {\n method: 'POST',\n path: '/v1/events',\n body: CreateEventSchema,\n responses: {\n 201: EventResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n },\n summary: 'Create a new event (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n list: {\n method: 'GET',\n path: '/v1/events',\n responses: {\n 200: z.array(EventResponseSchema),\n 401: z.object({ message: z.string() }),\n },\n summary: \"List authenticated organiser's events\",\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n getById: {\n method: 'GET',\n path: '/v1/events/:id',\n responses: {\n 200: EventDetailResponseSchema,\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Get event details including participants (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n update: {\n method: 'PATCH',\n path: '/v1/events/:id',\n body: UpdateEventSchema,\n responses: {\n 200: EventResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Update event fields (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n delete: {\n method: 'DELETE',\n path: '/v1/events/:id',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Delete event and all related data (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n getCredentials: {\n method: 'GET',\n path: '/v1/events/:id/credentials',\n responses: {\n 200: z.array(z.record(z.unknown())),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'List issued VCs for event (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const EventPublicInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n maxGuests: z.number(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n currentGuests: z.number(),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']),\n});\n\nexport const CheckinInfoResponseSchema = z.object({\n event: EventPublicInfoSchema,\n vpRequest: z.record(z.unknown()),\n});\n\nexport const CheckinSubmitRequestSchema = z.object({\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const CheckinSubmitResponseSchema = z.object({\n success: z.literal(true),\n credential: z.record(z.unknown()),\n});\n\nexport const checkinContract = c.router({\n info: {\n method: 'GET',\n path: '/v1/checkin/:eventId/info',\n responses: {\n 200: CheckinInfoResponseSchema,\n 400: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Get event info and VP request for check-in (public)',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [] },\n },\n submit: {\n method: 'POST',\n path: '/v1/checkin/:eventId/submit',\n body: CheckinSubmitRequestSchema,\n responses: {\n 200: CheckinSubmitResponseSchema,\n 400: z.object({ message: z.string(), errors: z.array(z.string()).optional() }),\n 401: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n 409: z.object({ message: z.string() }),\n },\n summary: 'Submit VP for event check-in — issues participation VC on success',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n myCheckins: {\n method: 'GET',\n path: '/v1/checkin/my',\n responses: {\n 200: z.array(\n z.object({\n id: z.string(),\n eventId: z.string(),\n checkedInAt: z.string(),\n disclosedFields: z.record(z.unknown()),\n event: EventPublicInfoSchema,\n }),\n ),\n 401: z.object({ message: z.string() }),\n },\n summary: 'List authenticated user check-ins',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nconst IceServerSchema = z.object({\n urls: z.union([z.string(), z.array(z.string())]),\n username: z.string().optional(),\n credential: z.string().optional(),\n});\n\nexport const TurnCredentialsResponseSchema = z.object({\n iceServers: z.array(IceServerSchema),\n});\n\nexport const turnContract = c.router({\n credentials: {\n method: 'GET',\n path: '/v1/turn/credentials',\n responses: {\n 200: TurnCredentialsResponseSchema,\n 401: z.object({ message: z.string() }),\n 502: z.object({ message: z.string() }),\n },\n summary: 'Get Cloudflare TURN credentials for WebRTC (authenticated)',\n metadata: { openApiTags: ['TURN'] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const UploadPresignedUrlSchema = z.object({\n fileId: z.string(),\n original: z.object({\n uploadUrl: z.string(),\n key: z.string(),\n publicUrl: z.string(),\n }),\n resize: z.object({\n uploadUrl: z.string(),\n key: z.string(),\n publicUrl: z.string(),\n }),\n});\n\nexport const uploadsContract = c.router(\n {\n generatePresignedUrls: {\n method: 'POST',\n path: '/urls',\n body: z.object({}),\n responses: {\n 201: UploadPresignedUrlSchema,\n },\n summary: 'Generate pre-signed URLs for event image upload',\n metadata: { openApiTags: ['Uploads'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n },\n {\n pathPrefix: '/v1/uploads',\n },\n);\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const TrackScanRequestSchema = z.object({\n platform: z.string(),\n appVersion: z.string().optional(),\n});\n\nexport const TrackScanResponseSchema = z.object({\n id: z.string(),\n});\n\nexport const trackingContract = c.router({\n scan: {\n method: 'POST',\n path: '/v1/tracking/scan',\n body: TrackScanRequestSchema,\n responses: {\n 201: TrackScanResponseSchema,\n 401: z.object({ message: z.string() }),\n },\n summary: 'Record a successful NFC scan event',\n metadata: { openApiTags: ['Tracking'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const appConfigContract = c.router({\n appConfig: {\n method: 'GET',\n path: '/v1/config/app',\n responses: {\n 200: z.object({\n demoMode: z.object({ enabled: z.boolean() }),\n publicEvents: z.object({ enabled: z.boolean() }),\n }),\n },\n summary: 'Get app configuration (public)',\n metadata: { openApiTags: ['Config'], openApiSecurity: [] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nconst SECURITY = [{ bearerAuth: [] }];\n\n// --- Zod Schemas ---\n\nexport const CreateOrganisationSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().optional(),\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const UpdateOrganisationSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n description: z.string().nullable().optional(),\n avatarUrl: z.string().nullable().optional(),\n});\n\nexport const OrgResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n didUri: z.string().nullable(),\n memberCount: z.number(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const OrgListItemSchema = OrgResponseSchema.extend({\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n});\n\nexport const OrgDetailResponseSchema = OrgListItemSchema.extend({\n members: z.array(z.object({\n id: z.string(),\n userId: z.string(),\n displayName: z.string().nullable(),\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n joinedAt: z.string(),\n })),\n});\n\nexport const MemberResponseSchema = z.object({\n id: z.string(),\n userId: z.string(),\n displayName: z.string().nullable(),\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n joinedAt: z.string(),\n});\n\nexport const UpdateMemberRoleSchema = z.object({\n role: z.enum(['ADMIN', 'ISSUER', 'MEMBER']),\n});\n\nexport const CreateInvitationSchema = z.object({\n expiresInDays: z.number().int().positive().default(7).optional(),\n});\n\nexport const InvitationResponseSchema = z.object({\n id: z.string(),\n orgId: z.string(),\n orgName: z.string(),\n token: z.string(),\n status: z.enum(['PENDING', 'SUBMITTED', 'ACCEPTED', 'DECLINED', 'EXPIRED']),\n inviteeDisplayName: z.string().nullable(),\n createdAt: z.string(),\n expiresAt: z.string(),\n});\n\nexport const JoinInvitationSchema = z.object({\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const IssueVCSchema = z.object({\n holderDid: z.string(),\n credentialSubject: z.record(z.unknown()),\n type: z.array(z.string()).optional(),\n});\n\nconst ErrorSchema = z.object({ message: z.string() });\n\n// --- Sub-contracts ---\n\nconst VpRequestResponseSchema = z.object({\n vpRequest: z.record(z.unknown()),\n expiresAt: z.string(),\n});\n\nexport const orgCrudContract = c.router({\n createVpRequest: {\n method: 'POST',\n path: '/v1/organisations/vp-request',\n body: z.object({}),\n responses: {\n 200: VpRequestResponseSchema,\n 401: ErrorSchema,\n },\n summary: 'Get VP request for creating an organisation',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n createOrg: {\n method: 'POST',\n path: '/v1/organisations',\n body: CreateOrganisationSchema,\n responses: {\n 201: OrgResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n },\n summary: 'Create a new organisation (requires CCCD VP)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listOrgs: {\n method: 'GET',\n path: '/v1/organisations',\n responses: {\n 200: z.array(OrgListItemSchema),\n 401: ErrorSchema,\n },\n summary: \"List user's organisations\",\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n getOrgById: {\n method: 'GET',\n path: '/v1/organisations/:orgId',\n responses: {\n 200: OrgDetailResponseSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Get organisation details (members only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n updateOrg: {\n method: 'PATCH',\n path: '/v1/organisations/:orgId',\n body: UpdateOrganisationSchema,\n responses: {\n 200: OrgResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Update organisation details (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n deleteOrg: {\n method: 'DELETE',\n path: '/v1/organisations/:orgId',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Delete organisation (owner only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgMembersContract = c.router({\n listMembers: {\n method: 'GET',\n path: '/v1/organisations/:orgId/members',\n responses: {\n 200: z.array(MemberResponseSchema),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List organisation members',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n updateMemberRole: {\n method: 'PATCH',\n path: '/v1/organisations/:orgId/members/:memberId',\n body: UpdateMemberRoleSchema,\n responses: {\n 200: MemberResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Update member role (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n removeMember: {\n method: 'DELETE',\n path: '/v1/organisations/:orgId/members/:memberId',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Remove member from organisation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgInvitationsContract = c.router({\n createInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations',\n body: CreateInvitationSchema,\n responses: {\n 201: InvitationResponseSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'Create invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listInvitations: {\n method: 'GET',\n path: '/v1/organisations/:orgId/invitations',\n responses: {\n 200: z.array(InvitationResponseSchema),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List pending invitations (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n joinVpRequest: {\n method: 'POST',\n path: '/v1/organisations/invitations/:token/vp-request',\n body: z.object({}),\n responses: {\n 200: VpRequestResponseSchema,\n 401: ErrorSchema,\n 404: ErrorSchema,\n 410: ErrorSchema,\n },\n summary: 'Get VP request for joining via invitation',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n joinInvitation: {\n method: 'POST',\n path: '/v1/organisations/invitations/:token/join',\n body: JoinInvitationSchema,\n responses: {\n 200: z.object({ message: z.string() }),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 410: ErrorSchema,\n },\n summary: 'Invitee submits CCCD VP to join',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n acceptInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations/:invitationId/accept',\n body: z.object({}),\n responses: {\n 200: z.object({ message: z.string(), memberId: z.string() }),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 409: ErrorSchema,\n },\n summary: 'Accept invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n declineInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations/:invitationId/decline',\n body: z.object({}),\n responses: {\n 200: z.object({ message: z.string() }),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 409: ErrorSchema,\n },\n summary: 'Decline invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgCredentialsContract = c.router({\n issueVC: {\n method: 'POST',\n path: '/v1/organisations/:orgId/credentials/issue',\n body: IssueVCSchema,\n responses: {\n 201: z.record(z.unknown()),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'Issue VC on behalf of organisation (owner/admin/issuer)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listIssuedCredentials: {\n method: 'GET',\n path: '/v1/organisations/:orgId/credentials',\n responses: {\n 200: z.array(z.object({\n id: z.string(),\n holderDid: z.string(),\n issuingMemberId: z.string(),\n credentialJson: z.record(z.unknown()),\n issuedAt: z.string(),\n })),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List issued credentials (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\n// Combined router for registration in the main contract\nexport const organisationsContract = c.router({\n crud: orgCrudContract,\n members: orgMembersContract,\n invitations: orgInvitationsContract,\n credentials: orgCredentialsContract,\n});\n"],"mappings":"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","names":["import_core","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","import_core","import_zod","c","SECURITY","c"]}
package/dist/index.mjs CHANGED
@@ -504,7 +504,7 @@ var orgCrudContract = c8.router({
504
504
  summary: "Get VP request for creating an organisation",
505
505
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
506
506
  },
507
- create: {
507
+ createOrg: {
508
508
  method: "POST",
509
509
  path: "/v1/organisations",
510
510
  body: CreateOrganisationSchema,
@@ -516,7 +516,7 @@ var orgCrudContract = c8.router({
516
516
  summary: "Create a new organisation (requires CCCD VP)",
517
517
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
518
518
  },
519
- list: {
519
+ listOrgs: {
520
520
  method: "GET",
521
521
  path: "/v1/organisations",
522
522
  responses: {
@@ -526,7 +526,7 @@ var orgCrudContract = c8.router({
526
526
  summary: "List user's organisations",
527
527
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
528
528
  },
529
- getById: {
529
+ getOrgById: {
530
530
  method: "GET",
531
531
  path: "/v1/organisations/:orgId",
532
532
  responses: {
@@ -538,7 +538,7 @@ var orgCrudContract = c8.router({
538
538
  summary: "Get organisation details (members only)",
539
539
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
540
540
  },
541
- update: {
541
+ updateOrg: {
542
542
  method: "PATCH",
543
543
  path: "/v1/organisations/:orgId",
544
544
  body: UpdateOrganisationSchema,
@@ -552,7 +552,7 @@ var orgCrudContract = c8.router({
552
552
  summary: "Update organisation details (owner/admin only)",
553
553
  metadata: { openApiTags: ["Organisations"], openApiSecurity: SECURITY2 }
554
554
  },
555
- delete: {
555
+ deleteOrg: {
556
556
  method: "DELETE",
557
557
  path: "/v1/organisations/:orgId",
558
558
  body: c8.noBody(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/v1/auth.ts","../src/v1/events.ts","../src/v1/checkin.ts","../src/v1/turn.ts","../src/v1/uploads.ts","../src/v1/tracking.ts","../src/v1/config.ts","../src/v1/organisations.ts"],"sourcesContent":["import { initContract } from '@ts-rest/core';\nimport { authContract } from './v1/auth';\nimport { eventsContract } from './v1/events';\nimport { checkinContract } from './v1/checkin';\nimport { turnContract } from './v1/turn';\nimport { uploadsContract } from './v1/uploads';\nimport { trackingContract } from './v1/tracking';\nimport { appConfigContract } from './v1/config';\nimport { organisationsContract } from './v1/organisations';\n\nexport * from './v1';\n\nconst c = initContract();\n\nexport const contract = c.router({\n v1: c.router({\n auth: authContract,\n events: eventsContract,\n checkin: checkinContract,\n turn: turnContract,\n uploads: uploadsContract,\n tracking: trackingContract,\n config: appConfigContract,\n organisations: organisationsContract,\n }),\n});\n\nexport type Contract = typeof contract;\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const AuthScheme = z.enum(['eip191']);\nexport type AuthScheme = z.infer<typeof AuthScheme>;\n\nexport const VerifyRequestSchema = z.object({\n did: z.string().min(1).describe('DID of the authenticating user (e.g. `did:ethr:0xABC...` or `did:vbsn:0xABC...`)'),\n signature: z\n .string()\n .min(1)\n .describe(\n 'Hex signature of the `message` string, produced by the scheme specified in the message',\n ),\n message: z\n .string()\n .min(1)\n .describe(\n 'Canonical JSON string that was signed. Must be `JSON.stringify({ domain, did, issuedAt, scheme })` where `issuedAt` is an ISO-8601 UTC timestamp within the last 60 seconds and `scheme` is the signing scheme used.',\n ),\n});\n\nexport const VerifyResponseSchema = z.object({\n accessToken: z.string(),\n});\n\nexport const authContract = c.router({\n verify: {\n method: 'POST',\n path: '/v1/auth/verify',\n body: VerifyRequestSchema,\n responses: {\n 200: VerifyResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n },\n summary: 'Verify DID signature and receive JWT',\n description: [\n '## Authentication Flow (1-turn)',\n '',\n 'The client constructs a JSON message, signs it with their Ethereum private key, and submits everything in a single request.',\n '',\n '### Crypto Suite',\n '',\n '| Property | Value |',\n '|----------|-------|',\n '| **Signing scheme** | ECDSA secp256k1 (`scheme: \"eip191\"`) |',\n '| **Signature format** | [EIP-191](https://eips.ethereum.org/EIPS/eip-191) `personal_sign` (65-byte `r‖s‖v`, hex-encoded with `0x` prefix) |',\n '| **DID method** | `did:ethr` or `did:vbsn` — the Ethereum address in the DID must match the signer |',\n '| **Message encoding** | UTF-8 JSON string |',\n '',\n '### Steps',\n '',\n '1. **Build the message** — a canonical JSON string:',\n ' ```json',\n ' {\"domain\":\"1Matrix Events\",\"did\":\"did:ethr:0xYOUR_ADDRESS\",\"issuedAt\":\"2026-02-25T12:00:00.000Z\",\"scheme\":\"eip191\"}',\n ' ```',\n ' Use the `buildAuthMessage(did)` helper from `@1mtx/did-api-contract`, or construct it manually.',\n '',\n '2. **Sign the message** using EIP-191 `personal_sign`:',\n ' ```ts',\n ' // ethers.js v6',\n ' const signature = await wallet.signMessage(message);',\n ' ```',\n '',\n '3. **POST** `{ did, signature, message }` to this endpoint.',\n '',\n '### Validation Rules',\n '',\n '- `issuedAt` must be within **60 seconds in the past** or **5 seconds in the future** (clock tolerance).',\n '- `domain` must equal `\"1Matrix Events\"`.',\n '- `did` in the message must match the `did` in the request body.',\n '- `scheme` must be a supported value (currently only `\"eip191\"`).',\n '- No extra JSON keys beyond `domain`, `did`, `issuedAt`, `scheme` are allowed.',\n '',\n '### Error Codes',\n '',\n '| Status | Reason |',\n '|--------|--------|',\n '| `400` | Invalid message format (bad JSON, extra keys, wrong domain) |',\n '| `401` | Message expired, DID mismatch, invalid or non-matching signature |',\n ].join('\\n'),\n metadata: { openApiTags: ['Auth'], openApiSecurity: [] },\n },\n});\n\n/**\n * Builds the canonical JSON string to be signed by the client.\n *\n * Usage:\n * const message = buildAuthMessage(did);\n * const signature = await wallet.signMessage(message);\n * // POST /v1/auth/verify { did, signature, message }\n */\nexport function buildAuthMessage(\n did: string,\n scheme: AuthScheme = 'eip191',\n domain = '1Matrix Events',\n issuedAt: string = new Date().toISOString(),\n): string {\n return JSON.stringify({ domain, did, issuedAt, scheme });\n}\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const SUPPORTED_FIELDS = [\n 'documentNumber',\n 'fullName',\n 'dateOfBirth',\n 'gender',\n 'nationality',\n 'ethnicity',\n 'hometown',\n 'permanentAddress',\n 'identifyingMarks',\n 'issueDate',\n 'expiryDate',\n 'fatherName',\n 'motherName',\n 'photo',\n] as const;\n\nexport type SupportedField = (typeof SUPPORTED_FIELDS)[number];\n\nexport const CreateEventSchema = z.object({\n name: z.string().min(1).max(255).describe('Tên sự kiện'),\n coverImageId: z.string().optional().describe('ID ảnh bìa sự kiện'),\n description: z.string().optional().describe('Mô tả sự kiện'),\n maxGuests: z.number().int().positive().describe('Số lượng khách tối đa'),\n startDateTime: z.string().datetime().describe('Thời gian bắt đầu sự kiện'),\n endDateTime: z.string().datetime().describe('Thời gian kết thúc sự kiện'),\n requestedFields: z.array(z.enum(SUPPORTED_FIELDS)).min(1).describe('Các trường dữ liệu yêu cầu xác thực'),\n});\n\nexport const UpdateEventSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n coverImageId: z.string().nullable().optional(),\n description: z.string().nullable().optional(),\n maxGuests: z.number().int().positive().optional(),\n startDateTime: z.string().datetime().optional(),\n endDateTime: z.string().datetime().optional(),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']).optional(),\n});\n\nexport const ParticipantSchema = z.object({\n id: z.string(),\n holderDid: z.string(),\n disclosedFields: z.record(z.unknown()),\n checkedInAt: z.string(),\n});\n\nexport const EventResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n maxGuests: z.number(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n userId: z.string(),\n requestedFields: z.array(z.string()),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']),\n participantCount: z.number(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const EventDetailResponseSchema = EventResponseSchema.extend({\n participants: z.array(ParticipantSchema),\n vpRequest: z.record(z.unknown()),\n});\n\nexport const EventDiscoverSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n participantCount: z.number(),\n});\n\nconst SECURITY = [{ bearerAuth: [] }];\n\nexport const eventsContract = c.router({\n discover: {\n method: 'GET',\n path: '/v1/events/public/discover',\n responses: {\n 200: z.array(EventDiscoverSchema),\n },\n summary: 'List public events for discovery (public)',\n metadata: { openApiTags: ['Events'], openApiSecurity: [] },\n },\n create: {\n method: 'POST',\n path: '/v1/events',\n body: CreateEventSchema,\n responses: {\n 201: EventResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n },\n summary: 'Create a new event (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n list: {\n method: 'GET',\n path: '/v1/events',\n responses: {\n 200: z.array(EventResponseSchema),\n 401: z.object({ message: z.string() }),\n },\n summary: \"List authenticated organiser's events\",\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n getById: {\n method: 'GET',\n path: '/v1/events/:id',\n responses: {\n 200: EventDetailResponseSchema,\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Get event details including participants (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n update: {\n method: 'PATCH',\n path: '/v1/events/:id',\n body: UpdateEventSchema,\n responses: {\n 200: EventResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Update event fields (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n delete: {\n method: 'DELETE',\n path: '/v1/events/:id',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Delete event and all related data (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n getCredentials: {\n method: 'GET',\n path: '/v1/events/:id/credentials',\n responses: {\n 200: z.array(z.record(z.unknown())),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'List issued VCs for event (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const EventPublicInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n maxGuests: z.number(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n currentGuests: z.number(),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']),\n});\n\nexport const CheckinInfoResponseSchema = z.object({\n event: EventPublicInfoSchema,\n vpRequest: z.record(z.unknown()),\n});\n\nexport const CheckinSubmitRequestSchema = z.object({\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const CheckinSubmitResponseSchema = z.object({\n success: z.literal(true),\n credential: z.record(z.unknown()),\n});\n\nexport const checkinContract = c.router({\n info: {\n method: 'GET',\n path: '/v1/checkin/:eventId/info',\n responses: {\n 200: CheckinInfoResponseSchema,\n 400: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Get event info and VP request for check-in (public)',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [] },\n },\n submit: {\n method: 'POST',\n path: '/v1/checkin/:eventId/submit',\n body: CheckinSubmitRequestSchema,\n responses: {\n 200: CheckinSubmitResponseSchema,\n 400: z.object({ message: z.string(), errors: z.array(z.string()).optional() }),\n 401: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n 409: z.object({ message: z.string() }),\n },\n summary: 'Submit VP for event check-in — issues participation VC on success',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n myCheckins: {\n method: 'GET',\n path: '/v1/checkin/my',\n responses: {\n 200: z.array(\n z.object({\n id: z.string(),\n eventId: z.string(),\n checkedInAt: z.string(),\n disclosedFields: z.record(z.unknown()),\n event: EventPublicInfoSchema,\n }),\n ),\n 401: z.object({ message: z.string() }),\n },\n summary: 'List authenticated user check-ins',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nconst IceServerSchema = z.object({\n urls: z.union([z.string(), z.array(z.string())]),\n username: z.string().optional(),\n credential: z.string().optional(),\n});\n\nexport const TurnCredentialsResponseSchema = z.object({\n iceServers: z.array(IceServerSchema),\n});\n\nexport const turnContract = c.router({\n credentials: {\n method: 'GET',\n path: '/v1/turn/credentials',\n responses: {\n 200: TurnCredentialsResponseSchema,\n 401: z.object({ message: z.string() }),\n 502: z.object({ message: z.string() }),\n },\n summary: 'Get Cloudflare TURN credentials for WebRTC (authenticated)',\n metadata: { openApiTags: ['TURN'] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const UploadPresignedUrlSchema = z.object({\n fileId: z.string(),\n original: z.object({\n uploadUrl: z.string(),\n key: z.string(),\n publicUrl: z.string(),\n }),\n resize: z.object({\n uploadUrl: z.string(),\n key: z.string(),\n publicUrl: z.string(),\n }),\n});\n\nexport const uploadsContract = c.router(\n {\n generatePresignedUrls: {\n method: 'POST',\n path: '/urls',\n body: z.object({}),\n responses: {\n 201: UploadPresignedUrlSchema,\n },\n summary: 'Generate pre-signed URLs for event image upload',\n metadata: { openApiTags: ['Uploads'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n },\n {\n pathPrefix: '/v1/uploads',\n },\n);\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const TrackScanRequestSchema = z.object({\n platform: z.string(),\n appVersion: z.string().optional(),\n});\n\nexport const TrackScanResponseSchema = z.object({\n id: z.string(),\n});\n\nexport const trackingContract = c.router({\n scan: {\n method: 'POST',\n path: '/v1/tracking/scan',\n body: TrackScanRequestSchema,\n responses: {\n 201: TrackScanResponseSchema,\n 401: z.object({ message: z.string() }),\n },\n summary: 'Record a successful NFC scan event',\n metadata: { openApiTags: ['Tracking'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const appConfigContract = c.router({\n appConfig: {\n method: 'GET',\n path: '/v1/config/app',\n responses: {\n 200: z.object({\n demoMode: z.object({ enabled: z.boolean() }),\n publicEvents: z.object({ enabled: z.boolean() }),\n }),\n },\n summary: 'Get app configuration (public)',\n metadata: { openApiTags: ['Config'], openApiSecurity: [] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nconst SECURITY = [{ bearerAuth: [] }];\n\n// --- Zod Schemas ---\n\nexport const CreateOrganisationSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().optional(),\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const UpdateOrganisationSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n description: z.string().nullable().optional(),\n avatarUrl: z.string().nullable().optional(),\n});\n\nexport const OrgResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n didUri: z.string().nullable(),\n memberCount: z.number(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const OrgListItemSchema = OrgResponseSchema.extend({\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n});\n\nexport const OrgDetailResponseSchema = OrgListItemSchema.extend({\n members: z.array(z.object({\n id: z.string(),\n userId: z.string(),\n displayName: z.string().nullable(),\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n joinedAt: z.string(),\n })),\n});\n\nexport const MemberResponseSchema = z.object({\n id: z.string(),\n userId: z.string(),\n displayName: z.string().nullable(),\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n joinedAt: z.string(),\n});\n\nexport const UpdateMemberRoleSchema = z.object({\n role: z.enum(['ADMIN', 'ISSUER', 'MEMBER']),\n});\n\nexport const CreateInvitationSchema = z.object({\n expiresInDays: z.number().int().positive().default(7).optional(),\n});\n\nexport const InvitationResponseSchema = z.object({\n id: z.string(),\n orgId: z.string(),\n orgName: z.string(),\n token: z.string(),\n status: z.enum(['PENDING', 'SUBMITTED', 'ACCEPTED', 'DECLINED', 'EXPIRED']),\n inviteeDisplayName: z.string().nullable(),\n createdAt: z.string(),\n expiresAt: z.string(),\n});\n\nexport const JoinInvitationSchema = z.object({\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const IssueVCSchema = z.object({\n holderDid: z.string(),\n credentialSubject: z.record(z.unknown()),\n type: z.array(z.string()).optional(),\n});\n\nconst ErrorSchema = z.object({ message: z.string() });\n\n// --- Sub-contracts ---\n\nconst VpRequestResponseSchema = z.object({\n vpRequest: z.record(z.unknown()),\n expiresAt: z.string(),\n});\n\nexport const orgCrudContract = c.router({\n createVpRequest: {\n method: 'POST',\n path: '/v1/organisations/vp-request',\n body: z.object({}),\n responses: {\n 200: VpRequestResponseSchema,\n 401: ErrorSchema,\n },\n summary: 'Get VP request for creating an organisation',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n create: {\n method: 'POST',\n path: '/v1/organisations',\n body: CreateOrganisationSchema,\n responses: {\n 201: OrgResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n },\n summary: 'Create a new organisation (requires CCCD VP)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n list: {\n method: 'GET',\n path: '/v1/organisations',\n responses: {\n 200: z.array(OrgListItemSchema),\n 401: ErrorSchema,\n },\n summary: \"List user's organisations\",\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n getById: {\n method: 'GET',\n path: '/v1/organisations/:orgId',\n responses: {\n 200: OrgDetailResponseSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Get organisation details (members only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n update: {\n method: 'PATCH',\n path: '/v1/organisations/:orgId',\n body: UpdateOrganisationSchema,\n responses: {\n 200: OrgResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Update organisation details (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n delete: {\n method: 'DELETE',\n path: '/v1/organisations/:orgId',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Delete organisation (owner only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgMembersContract = c.router({\n listMembers: {\n method: 'GET',\n path: '/v1/organisations/:orgId/members',\n responses: {\n 200: z.array(MemberResponseSchema),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List organisation members',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n updateMemberRole: {\n method: 'PATCH',\n path: '/v1/organisations/:orgId/members/:memberId',\n body: UpdateMemberRoleSchema,\n responses: {\n 200: MemberResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Update member role (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n removeMember: {\n method: 'DELETE',\n path: '/v1/organisations/:orgId/members/:memberId',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Remove member from organisation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgInvitationsContract = c.router({\n createInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations',\n body: CreateInvitationSchema,\n responses: {\n 201: InvitationResponseSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'Create invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listInvitations: {\n method: 'GET',\n path: '/v1/organisations/:orgId/invitations',\n responses: {\n 200: z.array(InvitationResponseSchema),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List pending invitations (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n joinVpRequest: {\n method: 'POST',\n path: '/v1/organisations/invitations/:token/vp-request',\n body: z.object({}),\n responses: {\n 200: VpRequestResponseSchema,\n 401: ErrorSchema,\n 404: ErrorSchema,\n 410: ErrorSchema,\n },\n summary: 'Get VP request for joining via invitation',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n joinInvitation: {\n method: 'POST',\n path: '/v1/organisations/invitations/:token/join',\n body: JoinInvitationSchema,\n responses: {\n 200: z.object({ message: z.string() }),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 410: ErrorSchema,\n },\n summary: 'Invitee submits CCCD VP to join',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n acceptInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations/:invitationId/accept',\n body: z.object({}),\n responses: {\n 200: z.object({ message: z.string(), memberId: z.string() }),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 409: ErrorSchema,\n },\n summary: 'Accept invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n declineInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations/:invitationId/decline',\n body: z.object({}),\n responses: {\n 200: z.object({ message: z.string() }),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 409: ErrorSchema,\n },\n summary: 'Decline invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgCredentialsContract = c.router({\n issueVC: {\n method: 'POST',\n path: '/v1/organisations/:orgId/credentials/issue',\n body: IssueVCSchema,\n responses: {\n 201: z.record(z.unknown()),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'Issue VC on behalf of organisation (owner/admin/issuer)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listIssuedCredentials: {\n method: 'GET',\n path: '/v1/organisations/:orgId/credentials',\n responses: {\n 200: z.array(z.object({\n id: z.string(),\n holderDid: z.string(),\n issuingMemberId: z.string(),\n credentialJson: z.record(z.unknown()),\n issuedAt: z.string(),\n })),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List issued credentials (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\n// Combined router for registration in the main contract\nexport const organisationsContract = c.router({\n crud: orgCrudContract,\n members: orgMembersContract,\n invitations: orgInvitationsContract,\n credentials: orgCredentialsContract,\n});\n"],"mappings":"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","names":["initContract","initContract","z","c","initContract","z","c","initContract","z","c","initContract","z","c","initContract","z","c","initContract","z","c","initContract","z","c","SECURITY","c","initContract"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/v1/auth.ts","../src/v1/events.ts","../src/v1/checkin.ts","../src/v1/turn.ts","../src/v1/uploads.ts","../src/v1/tracking.ts","../src/v1/config.ts","../src/v1/organisations.ts"],"sourcesContent":["import { initContract } from '@ts-rest/core';\nimport { authContract } from './v1/auth';\nimport { eventsContract } from './v1/events';\nimport { checkinContract } from './v1/checkin';\nimport { turnContract } from './v1/turn';\nimport { uploadsContract } from './v1/uploads';\nimport { trackingContract } from './v1/tracking';\nimport { appConfigContract } from './v1/config';\nimport { organisationsContract } from './v1/organisations';\n\nexport * from './v1';\n\nconst c = initContract();\n\nexport const contract = c.router({\n v1: c.router({\n auth: authContract,\n events: eventsContract,\n checkin: checkinContract,\n turn: turnContract,\n uploads: uploadsContract,\n tracking: trackingContract,\n config: appConfigContract,\n organisations: organisationsContract,\n }),\n});\n\nexport type Contract = typeof contract;\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const AuthScheme = z.enum(['eip191']);\nexport type AuthScheme = z.infer<typeof AuthScheme>;\n\nexport const VerifyRequestSchema = z.object({\n did: z.string().min(1).describe('DID of the authenticating user (e.g. `did:ethr:0xABC...` or `did:vbsn:0xABC...`)'),\n signature: z\n .string()\n .min(1)\n .describe(\n 'Hex signature of the `message` string, produced by the scheme specified in the message',\n ),\n message: z\n .string()\n .min(1)\n .describe(\n 'Canonical JSON string that was signed. Must be `JSON.stringify({ domain, did, issuedAt, scheme })` where `issuedAt` is an ISO-8601 UTC timestamp within the last 60 seconds and `scheme` is the signing scheme used.',\n ),\n});\n\nexport const VerifyResponseSchema = z.object({\n accessToken: z.string(),\n});\n\nexport const authContract = c.router({\n verify: {\n method: 'POST',\n path: '/v1/auth/verify',\n body: VerifyRequestSchema,\n responses: {\n 200: VerifyResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n },\n summary: 'Verify DID signature and receive JWT',\n description: [\n '## Authentication Flow (1-turn)',\n '',\n 'The client constructs a JSON message, signs it with their Ethereum private key, and submits everything in a single request.',\n '',\n '### Crypto Suite',\n '',\n '| Property | Value |',\n '|----------|-------|',\n '| **Signing scheme** | ECDSA secp256k1 (`scheme: \"eip191\"`) |',\n '| **Signature format** | [EIP-191](https://eips.ethereum.org/EIPS/eip-191) `personal_sign` (65-byte `r‖s‖v`, hex-encoded with `0x` prefix) |',\n '| **DID method** | `did:ethr` or `did:vbsn` — the Ethereum address in the DID must match the signer |',\n '| **Message encoding** | UTF-8 JSON string |',\n '',\n '### Steps',\n '',\n '1. **Build the message** — a canonical JSON string:',\n ' ```json',\n ' {\"domain\":\"1Matrix Events\",\"did\":\"did:ethr:0xYOUR_ADDRESS\",\"issuedAt\":\"2026-02-25T12:00:00.000Z\",\"scheme\":\"eip191\"}',\n ' ```',\n ' Use the `buildAuthMessage(did)` helper from `@1mtx/did-api-contract`, or construct it manually.',\n '',\n '2. **Sign the message** using EIP-191 `personal_sign`:',\n ' ```ts',\n ' // ethers.js v6',\n ' const signature = await wallet.signMessage(message);',\n ' ```',\n '',\n '3. **POST** `{ did, signature, message }` to this endpoint.',\n '',\n '### Validation Rules',\n '',\n '- `issuedAt` must be within **60 seconds in the past** or **5 seconds in the future** (clock tolerance).',\n '- `domain` must equal `\"1Matrix Events\"`.',\n '- `did` in the message must match the `did` in the request body.',\n '- `scheme` must be a supported value (currently only `\"eip191\"`).',\n '- No extra JSON keys beyond `domain`, `did`, `issuedAt`, `scheme` are allowed.',\n '',\n '### Error Codes',\n '',\n '| Status | Reason |',\n '|--------|--------|',\n '| `400` | Invalid message format (bad JSON, extra keys, wrong domain) |',\n '| `401` | Message expired, DID mismatch, invalid or non-matching signature |',\n ].join('\\n'),\n metadata: { openApiTags: ['Auth'], openApiSecurity: [] },\n },\n});\n\n/**\n * Builds the canonical JSON string to be signed by the client.\n *\n * Usage:\n * const message = buildAuthMessage(did);\n * const signature = await wallet.signMessage(message);\n * // POST /v1/auth/verify { did, signature, message }\n */\nexport function buildAuthMessage(\n did: string,\n scheme: AuthScheme = 'eip191',\n domain = '1Matrix Events',\n issuedAt: string = new Date().toISOString(),\n): string {\n return JSON.stringify({ domain, did, issuedAt, scheme });\n}\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const SUPPORTED_FIELDS = [\n 'documentNumber',\n 'fullName',\n 'dateOfBirth',\n 'gender',\n 'nationality',\n 'ethnicity',\n 'hometown',\n 'permanentAddress',\n 'identifyingMarks',\n 'issueDate',\n 'expiryDate',\n 'fatherName',\n 'motherName',\n 'photo',\n] as const;\n\nexport type SupportedField = (typeof SUPPORTED_FIELDS)[number];\n\nexport const CreateEventSchema = z.object({\n name: z.string().min(1).max(255).describe('Tên sự kiện'),\n coverImageId: z.string().optional().describe('ID ảnh bìa sự kiện'),\n description: z.string().optional().describe('Mô tả sự kiện'),\n maxGuests: z.number().int().positive().describe('Số lượng khách tối đa'),\n startDateTime: z.string().datetime().describe('Thời gian bắt đầu sự kiện'),\n endDateTime: z.string().datetime().describe('Thời gian kết thúc sự kiện'),\n requestedFields: z.array(z.enum(SUPPORTED_FIELDS)).min(1).describe('Các trường dữ liệu yêu cầu xác thực'),\n});\n\nexport const UpdateEventSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n coverImageId: z.string().nullable().optional(),\n description: z.string().nullable().optional(),\n maxGuests: z.number().int().positive().optional(),\n startDateTime: z.string().datetime().optional(),\n endDateTime: z.string().datetime().optional(),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']).optional(),\n});\n\nexport const ParticipantSchema = z.object({\n id: z.string(),\n holderDid: z.string(),\n disclosedFields: z.record(z.unknown()),\n checkedInAt: z.string(),\n});\n\nexport const EventResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n maxGuests: z.number(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n userId: z.string(),\n requestedFields: z.array(z.string()),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']),\n participantCount: z.number(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const EventDetailResponseSchema = EventResponseSchema.extend({\n participants: z.array(ParticipantSchema),\n vpRequest: z.record(z.unknown()),\n});\n\nexport const EventDiscoverSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n participantCount: z.number(),\n});\n\nconst SECURITY = [{ bearerAuth: [] }];\n\nexport const eventsContract = c.router({\n discover: {\n method: 'GET',\n path: '/v1/events/public/discover',\n responses: {\n 200: z.array(EventDiscoverSchema),\n },\n summary: 'List public events for discovery (public)',\n metadata: { openApiTags: ['Events'], openApiSecurity: [] },\n },\n create: {\n method: 'POST',\n path: '/v1/events',\n body: CreateEventSchema,\n responses: {\n 201: EventResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n },\n summary: 'Create a new event (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n list: {\n method: 'GET',\n path: '/v1/events',\n responses: {\n 200: z.array(EventResponseSchema),\n 401: z.object({ message: z.string() }),\n },\n summary: \"List authenticated organiser's events\",\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n getById: {\n method: 'GET',\n path: '/v1/events/:id',\n responses: {\n 200: EventDetailResponseSchema,\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Get event details including participants (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n update: {\n method: 'PATCH',\n path: '/v1/events/:id',\n body: UpdateEventSchema,\n responses: {\n 200: EventResponseSchema,\n 400: z.object({ message: z.string() }),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Update event fields (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n delete: {\n method: 'DELETE',\n path: '/v1/events/:id',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Delete event and all related data (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n getCredentials: {\n method: 'GET',\n path: '/v1/events/:id/credentials',\n responses: {\n 200: z.array(z.record(z.unknown())),\n 401: z.object({ message: z.string() }),\n 403: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'List issued VCs for event (organiser only)',\n metadata: { openApiTags: ['Events'], openApiSecurity: SECURITY },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const EventPublicInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n coverImageUrl: z.string().nullable(),\n thumbnailUrl: z.string().nullable(),\n description: z.string().nullable(),\n maxGuests: z.number(),\n startDateTime: z.string(),\n endDateTime: z.string().nullable(),\n currentGuests: z.number(),\n status: z.enum(['ACTIVE', 'CANCELLED', 'COMPLETED']),\n});\n\nexport const CheckinInfoResponseSchema = z.object({\n event: EventPublicInfoSchema,\n vpRequest: z.record(z.unknown()),\n});\n\nexport const CheckinSubmitRequestSchema = z.object({\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const CheckinSubmitResponseSchema = z.object({\n success: z.literal(true),\n credential: z.record(z.unknown()),\n});\n\nexport const checkinContract = c.router({\n info: {\n method: 'GET',\n path: '/v1/checkin/:eventId/info',\n responses: {\n 200: CheckinInfoResponseSchema,\n 400: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n },\n summary: 'Get event info and VP request for check-in (public)',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [] },\n },\n submit: {\n method: 'POST',\n path: '/v1/checkin/:eventId/submit',\n body: CheckinSubmitRequestSchema,\n responses: {\n 200: CheckinSubmitResponseSchema,\n 400: z.object({ message: z.string(), errors: z.array(z.string()).optional() }),\n 401: z.object({ message: z.string() }),\n 404: z.object({ message: z.string() }),\n 409: z.object({ message: z.string() }),\n },\n summary: 'Submit VP for event check-in — issues participation VC on success',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n myCheckins: {\n method: 'GET',\n path: '/v1/checkin/my',\n responses: {\n 200: z.array(\n z.object({\n id: z.string(),\n eventId: z.string(),\n checkedInAt: z.string(),\n disclosedFields: z.record(z.unknown()),\n event: EventPublicInfoSchema,\n }),\n ),\n 401: z.object({ message: z.string() }),\n },\n summary: 'List authenticated user check-ins',\n metadata: { openApiTags: ['Check-in'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nconst IceServerSchema = z.object({\n urls: z.union([z.string(), z.array(z.string())]),\n username: z.string().optional(),\n credential: z.string().optional(),\n});\n\nexport const TurnCredentialsResponseSchema = z.object({\n iceServers: z.array(IceServerSchema),\n});\n\nexport const turnContract = c.router({\n credentials: {\n method: 'GET',\n path: '/v1/turn/credentials',\n responses: {\n 200: TurnCredentialsResponseSchema,\n 401: z.object({ message: z.string() }),\n 502: z.object({ message: z.string() }),\n },\n summary: 'Get Cloudflare TURN credentials for WebRTC (authenticated)',\n metadata: { openApiTags: ['TURN'] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const UploadPresignedUrlSchema = z.object({\n fileId: z.string(),\n original: z.object({\n uploadUrl: z.string(),\n key: z.string(),\n publicUrl: z.string(),\n }),\n resize: z.object({\n uploadUrl: z.string(),\n key: z.string(),\n publicUrl: z.string(),\n }),\n});\n\nexport const uploadsContract = c.router(\n {\n generatePresignedUrls: {\n method: 'POST',\n path: '/urls',\n body: z.object({}),\n responses: {\n 201: UploadPresignedUrlSchema,\n },\n summary: 'Generate pre-signed URLs for event image upload',\n metadata: { openApiTags: ['Uploads'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n },\n {\n pathPrefix: '/v1/uploads',\n },\n);\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const TrackScanRequestSchema = z.object({\n platform: z.string(),\n appVersion: z.string().optional(),\n});\n\nexport const TrackScanResponseSchema = z.object({\n id: z.string(),\n});\n\nexport const trackingContract = c.router({\n scan: {\n method: 'POST',\n path: '/v1/tracking/scan',\n body: TrackScanRequestSchema,\n responses: {\n 201: TrackScanResponseSchema,\n 401: z.object({ message: z.string() }),\n },\n summary: 'Record a successful NFC scan event',\n metadata: { openApiTags: ['Tracking'], openApiSecurity: [{ bearerAuth: [] }] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nexport const appConfigContract = c.router({\n appConfig: {\n method: 'GET',\n path: '/v1/config/app',\n responses: {\n 200: z.object({\n demoMode: z.object({ enabled: z.boolean() }),\n publicEvents: z.object({ enabled: z.boolean() }),\n }),\n },\n summary: 'Get app configuration (public)',\n metadata: { openApiTags: ['Config'], openApiSecurity: [] },\n },\n});\n","import { initContract } from '@ts-rest/core';\nimport { z } from 'zod';\n\nconst c = initContract();\n\nconst SECURITY = [{ bearerAuth: [] }];\n\n// --- Zod Schemas ---\n\nexport const CreateOrganisationSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().optional(),\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const UpdateOrganisationSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n description: z.string().nullable().optional(),\n avatarUrl: z.string().nullable().optional(),\n});\n\nexport const OrgResponseSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().nullable(),\n avatarUrl: z.string().nullable(),\n didUri: z.string().nullable(),\n memberCount: z.number(),\n createdAt: z.string(),\n updatedAt: z.string(),\n});\n\nexport const OrgListItemSchema = OrgResponseSchema.extend({\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n});\n\nexport const OrgDetailResponseSchema = OrgListItemSchema.extend({\n members: z.array(z.object({\n id: z.string(),\n userId: z.string(),\n displayName: z.string().nullable(),\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n joinedAt: z.string(),\n })),\n});\n\nexport const MemberResponseSchema = z.object({\n id: z.string(),\n userId: z.string(),\n displayName: z.string().nullable(),\n role: z.enum(['OWNER', 'ADMIN', 'ISSUER', 'MEMBER']),\n joinedAt: z.string(),\n});\n\nexport const UpdateMemberRoleSchema = z.object({\n role: z.enum(['ADMIN', 'ISSUER', 'MEMBER']),\n});\n\nexport const CreateInvitationSchema = z.object({\n expiresInDays: z.number().int().positive().default(7).optional(),\n});\n\nexport const InvitationResponseSchema = z.object({\n id: z.string(),\n orgId: z.string(),\n orgName: z.string(),\n token: z.string(),\n status: z.enum(['PENDING', 'SUBMITTED', 'ACCEPTED', 'DECLINED', 'EXPIRED']),\n inviteeDisplayName: z.string().nullable(),\n createdAt: z.string(),\n expiresAt: z.string(),\n});\n\nexport const JoinInvitationSchema = z.object({\n verifiablePresentation: z.record(z.unknown()),\n});\n\nexport const IssueVCSchema = z.object({\n holderDid: z.string(),\n credentialSubject: z.record(z.unknown()),\n type: z.array(z.string()).optional(),\n});\n\nconst ErrorSchema = z.object({ message: z.string() });\n\n// --- Sub-contracts ---\n\nconst VpRequestResponseSchema = z.object({\n vpRequest: z.record(z.unknown()),\n expiresAt: z.string(),\n});\n\nexport const orgCrudContract = c.router({\n createVpRequest: {\n method: 'POST',\n path: '/v1/organisations/vp-request',\n body: z.object({}),\n responses: {\n 200: VpRequestResponseSchema,\n 401: ErrorSchema,\n },\n summary: 'Get VP request for creating an organisation',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n createOrg: {\n method: 'POST',\n path: '/v1/organisations',\n body: CreateOrganisationSchema,\n responses: {\n 201: OrgResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n },\n summary: 'Create a new organisation (requires CCCD VP)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listOrgs: {\n method: 'GET',\n path: '/v1/organisations',\n responses: {\n 200: z.array(OrgListItemSchema),\n 401: ErrorSchema,\n },\n summary: \"List user's organisations\",\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n getOrgById: {\n method: 'GET',\n path: '/v1/organisations/:orgId',\n responses: {\n 200: OrgDetailResponseSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Get organisation details (members only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n updateOrg: {\n method: 'PATCH',\n path: '/v1/organisations/:orgId',\n body: UpdateOrganisationSchema,\n responses: {\n 200: OrgResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Update organisation details (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n deleteOrg: {\n method: 'DELETE',\n path: '/v1/organisations/:orgId',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Delete organisation (owner only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgMembersContract = c.router({\n listMembers: {\n method: 'GET',\n path: '/v1/organisations/:orgId/members',\n responses: {\n 200: z.array(MemberResponseSchema),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List organisation members',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n updateMemberRole: {\n method: 'PATCH',\n path: '/v1/organisations/:orgId/members/:memberId',\n body: UpdateMemberRoleSchema,\n responses: {\n 200: MemberResponseSchema,\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Update member role (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n removeMember: {\n method: 'DELETE',\n path: '/v1/organisations/:orgId/members/:memberId',\n body: c.noBody(),\n responses: {\n 204: z.undefined(),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n 404: ErrorSchema,\n },\n summary: 'Remove member from organisation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgInvitationsContract = c.router({\n createInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations',\n body: CreateInvitationSchema,\n responses: {\n 201: InvitationResponseSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'Create invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listInvitations: {\n method: 'GET',\n path: '/v1/organisations/:orgId/invitations',\n responses: {\n 200: z.array(InvitationResponseSchema),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List pending invitations (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n joinVpRequest: {\n method: 'POST',\n path: '/v1/organisations/invitations/:token/vp-request',\n body: z.object({}),\n responses: {\n 200: VpRequestResponseSchema,\n 401: ErrorSchema,\n 404: ErrorSchema,\n 410: ErrorSchema,\n },\n summary: 'Get VP request for joining via invitation',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n joinInvitation: {\n method: 'POST',\n path: '/v1/organisations/invitations/:token/join',\n body: JoinInvitationSchema,\n responses: {\n 200: z.object({ message: z.string() }),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 410: ErrorSchema,\n },\n summary: 'Invitee submits CCCD VP to join',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n acceptInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations/:invitationId/accept',\n body: z.object({}),\n responses: {\n 200: z.object({ message: z.string(), memberId: z.string() }),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 409: ErrorSchema,\n },\n summary: 'Accept invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n declineInvitation: {\n method: 'POST',\n path: '/v1/organisations/:orgId/invitations/:invitationId/decline',\n body: z.object({}),\n responses: {\n 200: z.object({ message: z.string() }),\n 401: ErrorSchema,\n 403: ErrorSchema,\n 409: ErrorSchema,\n },\n summary: 'Decline invitation (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\nexport const orgCredentialsContract = c.router({\n issueVC: {\n method: 'POST',\n path: '/v1/organisations/:orgId/credentials/issue',\n body: IssueVCSchema,\n responses: {\n 201: z.record(z.unknown()),\n 400: ErrorSchema,\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'Issue VC on behalf of organisation (owner/admin/issuer)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n listIssuedCredentials: {\n method: 'GET',\n path: '/v1/organisations/:orgId/credentials',\n responses: {\n 200: z.array(z.object({\n id: z.string(),\n holderDid: z.string(),\n issuingMemberId: z.string(),\n credentialJson: z.record(z.unknown()),\n issuedAt: z.string(),\n })),\n 401: ErrorSchema,\n 403: ErrorSchema,\n },\n summary: 'List issued credentials (owner/admin only)',\n metadata: { openApiTags: ['Organisations'], openApiSecurity: SECURITY },\n },\n});\n\n// Combined router for registration in the main contract\nexport const organisationsContract = c.router({\n crud: orgCrudContract,\n members: orgMembersContract,\n invitations: orgInvitationsContract,\n credentials: orgCredentialsContract,\n});\n"],"mappings":"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","names":["initContract","initContract","z","c","initContract","z","c","initContract","z","c","initContract","z","c","initContract","z","c","initContract","z","c","initContract","z","c","SECURITY","c","initContract"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1mtx/did-api-contract",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "Type-safe API contract for the 1matrix DID platform",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",