assembly-kit 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CLAUDE.md +42 -39
  2. package/README.md +47 -32
  3. package/dist/client/index.d.mts +6 -0
  4. package/dist/client/index.mjs +9 -0
  5. package/dist/client/index.mjs.map +1 -1
  6. package/dist/index.d.mts +14 -11
  7. package/dist/index.mjs +14 -11
  8. package/dist/lib/modules/app-installs/resource.d.mts +13 -1
  9. package/dist/lib/modules/app-installs/resource.mjs +25 -1
  10. package/dist/lib/modules/app-installs/resource.mjs.map +1 -1
  11. package/dist/lib/modules/app-installs/schema.d.mts +47 -1
  12. package/dist/lib/modules/app-installs/schema.mjs +37 -1
  13. package/dist/lib/modules/app-installs/schema.mjs.map +1 -1
  14. package/dist/lib/modules/clients/resource.d.mts +3 -1
  15. package/dist/lib/modules/clients/resource.mjs +9 -1
  16. package/dist/lib/modules/clients/resource.mjs.map +1 -1
  17. package/dist/lib/modules/clients/schema.d.mts +11 -3
  18. package/dist/lib/modules/clients/schema.mjs +12 -4
  19. package/dist/lib/modules/clients/schema.mjs.map +1 -1
  20. package/dist/lib/modules/companies/resource.d.mts +7 -1
  21. package/dist/lib/modules/companies/resource.mjs +10 -1
  22. package/dist/lib/modules/companies/resource.mjs.map +1 -1
  23. package/dist/lib/modules/companies/schema.d.mts +18 -1
  24. package/dist/lib/modules/companies/schema.mjs +13 -1
  25. package/dist/lib/modules/companies/schema.mjs.map +1 -1
  26. package/dist/lib/modules/custom-fields/resource.d.mts +3 -1
  27. package/dist/lib/modules/custom-fields/resource.mjs +9 -1
  28. package/dist/lib/modules/custom-fields/resource.mjs.map +1 -1
  29. package/dist/lib/modules/custom-fields/schema.d.mts +19 -1
  30. package/dist/lib/modules/custom-fields/schema.mjs +9 -1
  31. package/dist/lib/modules/custom-fields/schema.mjs.map +1 -1
  32. package/dist/lib/modules/files/resource.d.mts +15 -1
  33. package/dist/lib/modules/files/resource.mjs +29 -1
  34. package/dist/lib/modules/files/resource.mjs.map +1 -1
  35. package/dist/lib/modules/files/schema.d.mts +15 -1
  36. package/dist/lib/modules/files/schema.mjs +8 -1
  37. package/dist/lib/modules/files/schema.mjs.map +1 -1
  38. package/dist/lib/modules/forms/resource.d.mts +15 -1
  39. package/dist/lib/modules/forms/resource.mjs +25 -0
  40. package/dist/lib/modules/forms/resource.mjs.map +1 -1
  41. package/dist/lib/modules/forms/schema.d.mts +35 -1
  42. package/dist/lib/modules/forms/schema.mjs +40 -1
  43. package/dist/lib/modules/forms/schema.mjs.map +1 -1
  44. package/dist/lib/modules/index.d.mts +13 -10
  45. package/dist/lib/modules/index.mjs +3 -0
  46. package/dist/lib/modules/internal-users/resource.d.mts +8 -1
  47. package/dist/lib/modules/internal-users/resource.mjs +17 -1
  48. package/dist/lib/modules/internal-users/resource.mjs.map +1 -1
  49. package/dist/lib/modules/internal-users/schema.d.mts +22 -1
  50. package/dist/lib/modules/internal-users/schema.mjs +22 -1
  51. package/dist/lib/modules/internal-users/schema.mjs.map +1 -1
  52. package/dist/lib/modules/invoices/schema.d.mts +1 -1
  53. package/dist/lib/modules/invoices/schema.mjs +1 -0
  54. package/dist/lib/modules/invoices/schema.mjs.map +1 -1
  55. package/dist/lib/modules/me/resource.d.mts +19 -0
  56. package/dist/lib/modules/me/resource.mjs +23 -0
  57. package/dist/lib/modules/me/resource.mjs.map +1 -0
  58. package/dist/lib/modules/me/schema.d.mts +15 -0
  59. package/dist/lib/modules/me/schema.mjs +13 -0
  60. package/dist/lib/modules/me/schema.mjs.map +1 -0
  61. package/dist/lib/modules/message-channels/resource.d.mts +5 -1
  62. package/dist/lib/modules/message-channels/resource.mjs +9 -1
  63. package/dist/lib/modules/message-channels/resource.mjs.map +1 -1
  64. package/dist/lib/modules/message-channels/schema.d.mts +10 -1
  65. package/dist/lib/modules/message-channels/schema.mjs +7 -1
  66. package/dist/lib/modules/message-channels/schema.mjs.map +1 -1
  67. package/dist/lib/modules/notifications/resource.d.mts +2 -0
  68. package/dist/lib/modules/notifications/resource.mjs +8 -0
  69. package/dist/lib/modules/notifications/resource.mjs.map +1 -1
  70. package/dist/lib/modules/prices/resource.d.mts +3 -1
  71. package/dist/lib/modules/prices/resource.mjs +8 -0
  72. package/dist/lib/modules/prices/resource.mjs.map +1 -1
  73. package/dist/lib/modules/prices/schema.d.mts +14 -1
  74. package/dist/lib/modules/prices/schema.mjs +19 -1
  75. package/dist/lib/modules/prices/schema.mjs.map +1 -1
  76. package/dist/lib/modules/products/resource.d.mts +3 -1
  77. package/dist/lib/modules/products/resource.mjs +8 -0
  78. package/dist/lib/modules/products/resource.mjs.map +1 -1
  79. package/dist/lib/modules/products/schema.d.mts +7 -1
  80. package/dist/lib/modules/products/schema.mjs +6 -1
  81. package/dist/lib/modules/products/schema.mjs.map +1 -1
  82. package/dist/lib/modules/refunds/resource.d.mts +27 -0
  83. package/dist/lib/modules/refunds/resource.mjs +40 -0
  84. package/dist/lib/modules/refunds/resource.mjs.map +1 -0
  85. package/dist/lib/modules/refunds/schema.d.mts +35 -0
  86. package/dist/lib/modules/refunds/schema.mjs +32 -0
  87. package/dist/lib/modules/refunds/schema.mjs.map +1 -0
  88. package/dist/lib/modules/task-comments/resource.d.mts +29 -0
  89. package/dist/lib/modules/task-comments/resource.mjs +44 -0
  90. package/dist/lib/modules/task-comments/resource.mjs.map +1 -0
  91. package/dist/lib/modules/task-comments/schema.d.mts +24 -0
  92. package/dist/lib/modules/task-comments/schema.mjs +21 -0
  93. package/dist/lib/modules/task-comments/schema.mjs.map +1 -0
  94. package/dist/lib/modules/tasks/schema.d.mts +1 -1
  95. package/dist/lib/modules/tasks/schema.mjs +1 -1
  96. package/dist/lib/modules/tasks/schema.mjs.map +1 -1
  97. package/dist/logger/index.d.mts +20 -1
  98. package/dist/logger/index.mjs +37 -2
  99. package/dist/logger/index.mjs.map +1 -1
  100. package/dist/schemas/index.d.mts +14 -11
  101. package/dist/schemas/index.mjs +14 -11
  102. package/dist/transport/http.d.mts +2 -0
  103. package/dist/transport/http.mjs +1 -0
  104. package/dist/transport/http.mjs.map +1 -1
  105. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/internal-users/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ─── Base ─────────────────────────────────────────────────────────────────────\n\nexport interface InternalUser {\n avatarImageUrl?: string;\n companyAccessList: string[] | null;\n createdAt?: string;\n email: string;\n fallbackColor?: string | null;\n familyName: string;\n givenName: string;\n id: string;\n isClientAccessLimited: boolean;\n object: \"internalUser\";\n role?: string;\n}\n\nexport const InternalUserSchema: z.ZodType<InternalUser> = z.object({\n avatarImageUrl: z.string().optional(),\n companyAccessList: z.array(z.string()).nullable(),\n createdAt: z.iso.datetime().optional(),\n // Deleted internal users can still be queried but have an empty email\n email: z.union([z.email(), z.literal(\"\")]),\n fallbackColor: z.string().nullish(),\n familyName: z.string(),\n givenName: z.string(),\n id: z.string(),\n isClientAccessLimited: z.boolean().default(false),\n object: z.literal(\"internalUser\"),\n role: z.string().optional(),\n});\n\n// ─── Response ─────────────────────────────────────────────────────────────────\n\nexport const InternalUserResponseSchema: z.ZodType<InternalUser> = InternalUserSchema;\nexport type InternalUserResponse = InternalUser;\n\nexport interface InternalUsersResponse {\n data: InternalUser[];\n nextToken?: string;\n}\n\nexport const InternalUsersResponseSchema: z.ZodType<InternalUsersResponse> = z.object({\n data: z.array(InternalUserSchema),\n nextToken: z.string().optional(),\n});\n"],"mappings":";;AAkBA,MAAa,qBAA8C,EAAE,OAAO;CAClE,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,mBAAmB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACjD,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CAEtC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC;CAC1C,eAAe,EAAE,QAAQ,CAAC,SAAS;CACnC,YAAY,EAAE,QAAQ;CACtB,WAAW,EAAE,QAAQ;CACrB,IAAI,EAAE,QAAQ;CACd,uBAAuB,EAAE,SAAS,CAAC,QAAQ,MAAM;CACjD,QAAQ,EAAE,QAAQ,eAAe;CACjC,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC5B,CAAC;AAIF,MAAa,6BAAsD;AAQnE,MAAa,8BAAgE,EAAE,OAAO;CACpF,MAAM,EAAE,MAAM,mBAAmB;CACjC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC"}
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/internal-users/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ─── Base ─────────────────────────────────────────────────────────────────────\n\nexport interface InternalUser {\n avatarImageUrl?: string;\n companyAccessList: string[] | null;\n createdAt?: string;\n email: string;\n fallbackColor?: string | null;\n familyName: string;\n givenName: string;\n id: string;\n isClientAccessLimited: boolean;\n object: \"internalUser\";\n role?: string;\n}\n\nexport const InternalUserSchema: z.ZodType<InternalUser> = z.object({\n avatarImageUrl: z.string().optional(),\n companyAccessList: z.array(z.string()).nullable(),\n createdAt: z.iso.datetime().optional(),\n // Deleted internal users can still be queried but have an empty email\n email: z.union([z.email(), z.literal(\"\")]),\n fallbackColor: z.string().nullish(),\n familyName: z.string(),\n givenName: z.string(),\n id: z.string(),\n isClientAccessLimited: z.boolean().default(false),\n object: z.literal(\"internalUser\"),\n role: z.string().optional(),\n});\n\n// ─── Response ─────────────────────────────────────────────────────────────────\n\nexport const InternalUserResponseSchema: z.ZodType<InternalUser> = InternalUserSchema;\nexport type InternalUserResponse = InternalUser;\n\nexport interface InternalUsersResponse {\n data: InternalUser[];\n nextToken?: string;\n}\n\nexport const InternalUsersResponseSchema: z.ZodType<InternalUsersResponse> = z.object({\n data: z.array(InternalUserSchema),\n nextToken: z.string().optional(),\n});\n\n// ─── Requests ─────────────────────────────────────────────────────────────────\n\nexport interface InternalUserUpdateRequest {\n companyAccessList?: string[];\n isClientAccessLimited?: boolean;\n}\n\nexport const InternalUserUpdateRequestSchema: z.ZodType<InternalUserUpdateRequest> = z.object({\n companyAccessList: z.array(z.string()).optional(),\n isClientAccessLimited: z.boolean().optional(),\n});\n\n// ─── Notification settings ────────────────────────────────────────────────────\n\nexport type InternalUserEmailSetting = \"always\" | \"no_emails\" | \"not_active\";\n\nexport const InternalUserEmailSettingSchema: z.ZodType<InternalUserEmailSetting> = z.enum([\n \"always\",\n \"not_active\",\n \"no_emails\",\n]);\n\nexport interface NotificationCategorySetting {\n appId?: string;\n disableEmail?: boolean;\n disableInProduct?: boolean;\n notificationSettingId?: string;\n}\n\nexport const NotificationCategorySettingSchema: z.ZodType<NotificationCategorySetting> = z.object({\n appId: z.string().optional(),\n disableEmail: z.boolean().optional(),\n disableInProduct: z.boolean().optional(),\n notificationSettingId: z.string().optional(),\n});\n\nexport interface InternalUserNotificationSettings {\n disableInProduct?: boolean;\n emailSettings?: InternalUserEmailSetting;\n notifyAbout?: Record<string, NotificationCategorySetting>;\n object?: string;\n}\n\nexport const InternalUserNotificationSettingsSchema: z.ZodType<InternalUserNotificationSettings> =\n z.object({\n disableInProduct: z.boolean().optional(),\n emailSettings: InternalUserEmailSettingSchema.optional(),\n notifyAbout: z.record(z.string(), NotificationCategorySettingSchema).optional(),\n object: z.string().optional(),\n });\n"],"mappings":";;AAkBA,MAAa,qBAA8C,EAAE,OAAO;CAClE,gBAAgB,EAAE,QAAQ,CAAC,UAAU;CACrC,mBAAmB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACjD,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CAEtC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,GAAG,CAAC,CAAC;CAC1C,eAAe,EAAE,QAAQ,CAAC,SAAS;CACnC,YAAY,EAAE,QAAQ;CACtB,WAAW,EAAE,QAAQ;CACrB,IAAI,EAAE,QAAQ;CACd,uBAAuB,EAAE,SAAS,CAAC,QAAQ,MAAM;CACjD,QAAQ,EAAE,QAAQ,eAAe;CACjC,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC5B,CAAC;AAIF,MAAa,6BAAsD;AAQnE,MAAa,8BAAgE,EAAE,OAAO;CACpF,MAAM,EAAE,MAAM,mBAAmB;CACjC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AASF,MAAa,kCAAwE,EAAE,OAAO;CAC5F,mBAAmB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACjD,uBAAuB,EAAE,SAAS,CAAC,UAAU;CAC9C,CAAC;AAMF,MAAa,iCAAsE,EAAE,KAAK;CACxF;CACA;CACA;CACD,CAAC;AASF,MAAa,oCAA4E,EAAE,OAAO;CAChG,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,cAAc,EAAE,SAAS,CAAC,UAAU;CACpC,kBAAkB,EAAE,SAAS,CAAC,UAAU;CACxC,uBAAuB,EAAE,QAAQ,CAAC,UAAU;CAC7C,CAAC;AASF,MAAa,yCACX,EAAE,OAAO;CACP,kBAAkB,EAAE,SAAS,CAAC,UAAU;CACxC,eAAe,+BAA+B,UAAU;CACxD,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,kCAAkC,CAAC,UAAU;CAC/E,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC9B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { z } from "zod";
2
2
 
3
3
  //#region src/lib/modules/invoices/schema.d.ts
4
- type InvoiceStatus = "draft" | "open" | "paid" | "void";
4
+ type InvoiceStatus = "draft" | "open" | "paid" | "processing" | "void";
5
5
  declare const InvoiceStatusSchema: z.ZodType<InvoiceStatus>;
6
6
  interface InvoiceLineItem {
7
7
  amount?: number;
@@ -4,6 +4,7 @@ const InvoiceStatusSchema = z.enum([
4
4
  "draft",
5
5
  "open",
6
6
  "paid",
7
+ "processing",
7
8
  "void"
8
9
  ]);
9
10
  const InvoiceLineItemSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/invoices/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Base types\n// ---------------------------------------------------------------------------\n\nexport type InvoiceStatus = \"draft\" | \"open\" | \"paid\" | \"void\";\n\nexport const InvoiceStatusSchema: z.ZodType<InvoiceStatus> = z.enum([\n \"draft\",\n \"open\",\n \"paid\",\n \"void\",\n]);\n\nexport interface InvoiceLineItem {\n amount?: number;\n description?: string;\n priceId?: string;\n productId?: string;\n quantity?: number;\n}\n\nexport const InvoiceLineItemSchema: z.ZodType<InvoiceLineItem> = z.object({\n amount: z.number().optional(),\n description: z.string().optional(),\n priceId: z.string().optional(),\n productId: z.string().optional(),\n quantity: z.number().optional(),\n});\n\nexport type PaymentMethodType = \"bankAccount\" | \"creditCard\";\n\nexport const PaymentMethodTypeSchema: z.ZodType<PaymentMethodType> = z.enum([\n \"creditCard\",\n \"bankAccount\",\n]);\n\nexport interface PaymentMethodPreference {\n feePaidByClient?: boolean;\n type?: PaymentMethodType;\n}\n\nexport const PaymentMethodPreferenceSchema: z.ZodType<PaymentMethodPreference> = z.object({\n feePaidByClient: z.boolean().optional(),\n type: PaymentMethodTypeSchema.optional(),\n});\n\nexport interface Invoice {\n billingReason?: string;\n clientId?: string;\n collectionMethod?: string;\n companyId?: string;\n createdAt: string;\n currency?: string;\n dueDate?: string;\n fileUrl?: string;\n id: string;\n lineItems?: InvoiceLineItem[];\n memo?: string;\n number?: string;\n object: \"invoice\";\n paymentMethodPreferences?: PaymentMethodPreference[];\n paymentSuccessDate?: string | null;\n receiptNumber?: string;\n receiptUrl?: string;\n /** @deprecated Use `clientId`/`companyId` instead. */\n recipientId?: string;\n sentDate?: string;\n status?: InvoiceStatus;\n taxAmount?: number;\n taxPercentage?: number;\n total?: number;\n updatedAt?: string;\n}\n\nexport const InvoiceSchema: z.ZodType<Invoice> = z.object({\n billingReason: z.string().optional(),\n clientId: z.string().optional(),\n collectionMethod: z.string().optional(),\n companyId: z.string().optional(),\n createdAt: z.iso.datetime(),\n currency: z.string().optional(),\n dueDate: z.string().optional(),\n fileUrl: z.string().optional(),\n id: z.string(),\n lineItems: z.array(InvoiceLineItemSchema).optional(),\n memo: z.string().optional(),\n number: z.string().optional(),\n object: z.literal(\"invoice\"),\n paymentMethodPreferences: z.array(PaymentMethodPreferenceSchema).optional(),\n paymentSuccessDate: z.string().nullable().optional(),\n receiptNumber: z.string().optional(),\n receiptUrl: z.string().optional(),\n recipientId: z.string().optional(),\n sentDate: z.string().optional(),\n status: InvoiceStatusSchema.optional(),\n taxAmount: z.number().optional(),\n taxPercentage: z.number().optional(),\n total: z.number().optional(),\n updatedAt: z.iso.datetime().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Response types\n// ---------------------------------------------------------------------------\n\nexport const InvoiceResponseSchema: z.ZodType<Invoice> = InvoiceSchema;\nexport type InvoiceResponse = Invoice;\n\nexport interface InvoicesResponse {\n data: Invoice[] | null;\n nextToken?: string;\n}\n\nexport const InvoicesResponseSchema: z.ZodType<InvoicesResponse> = z.object({\n data: z.array(InvoiceSchema).nullable(),\n nextToken: z.string().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Request types\n// ---------------------------------------------------------------------------\n\nexport interface InvoiceLineItemRequest {\n amount: number;\n description: string;\n priceId: string;\n productId: string;\n quantity: number;\n}\n\nexport const InvoiceLineItemRequestSchema: z.ZodType<InvoiceLineItemRequest> = z.object({\n amount: z.number(),\n description: z.string(),\n priceId: z.string(),\n productId: z.string(),\n quantity: z.number(),\n});\n\nexport interface InvoicePaymentMethodPreferenceRequest {\n feePaidByClient?: boolean;\n type: string;\n}\n\nexport const InvoicePaymentMethodPreferenceRequestSchema: z.ZodType<InvoicePaymentMethodPreferenceRequest> =\n z.object({\n feePaidByClient: z.boolean().optional(),\n type: z.string(),\n });\n\nexport interface InvoiceCreateRequest {\n clientId: string;\n companyId?: string;\n currency?: string;\n dueDate?: string;\n lineItems: InvoiceLineItemRequest[];\n memo?: string;\n paymentMethodPreferences?: InvoicePaymentMethodPreferenceRequest[];\n}\n\nexport const InvoiceCreateRequestSchema: z.ZodType<InvoiceCreateRequest> = z.object({\n clientId: z.string(),\n companyId: z.string().optional(),\n currency: z.string().optional(),\n dueDate: z.string().optional(),\n lineItems: z.array(InvoiceLineItemRequestSchema),\n memo: z.string().optional(),\n paymentMethodPreferences: z.array(InvoicePaymentMethodPreferenceRequestSchema).optional(),\n});\n"],"mappings":";;AAQA,MAAa,sBAAgD,EAAE,KAAK;CAClE;CACA;CACA;CACA;CACD,CAAC;AAUF,MAAa,wBAAoD,EAAE,OAAO;CACxE,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAChC,CAAC;AAIF,MAAa,0BAAwD,EAAE,KAAK,CAC1E,cACA,cACD,CAAC;AAOF,MAAa,gCAAoE,EAAE,OAAO;CACxF,iBAAiB,EAAE,SAAS,CAAC,UAAU;CACvC,MAAM,wBAAwB,UAAU;CACzC,CAAC;AA8BF,MAAa,gBAAoC,EAAE,OAAO;CACxD,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,kBAAkB,EAAE,QAAQ,CAAC,UAAU;CACvC,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EAAE,IAAI,UAAU;CAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,IAAI,EAAE,QAAQ;CACd,WAAW,EAAE,MAAM,sBAAsB,CAAC,UAAU;CACpD,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,QAAQ,EAAE,QAAQ,UAAU;CAC5B,0BAA0B,EAAE,MAAM,8BAA8B,CAAC,UAAU;CAC3E,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CACpD,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,QAAQ,oBAAoB,UAAU;CACtC,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CACvC,CAAC;AAMF,MAAa,wBAA4C;AAQzD,MAAa,yBAAsD,EAAE,OAAO;CAC1E,MAAM,EAAE,MAAM,cAAc,CAAC,UAAU;CACvC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAcF,MAAa,+BAAkE,EAAE,OAAO;CACtF,QAAQ,EAAE,QAAQ;CAClB,aAAa,EAAE,QAAQ;CACvB,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ;CACrB,UAAU,EAAE,QAAQ;CACrB,CAAC;AAOF,MAAa,8CACX,EAAE,OAAO;CACP,iBAAiB,EAAE,SAAS,CAAC,UAAU;CACvC,MAAM,EAAE,QAAQ;CACjB,CAAC;AAYJ,MAAa,6BAA8D,EAAE,OAAO;CAClF,UAAU,EAAE,QAAQ;CACpB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,MAAM,6BAA6B;CAChD,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,0BAA0B,EAAE,MAAM,4CAA4C,CAAC,UAAU;CAC1F,CAAC"}
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/invoices/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Base types\n// ---------------------------------------------------------------------------\n\nexport type InvoiceStatus = \"draft\" | \"open\" | \"paid\" | \"processing\" | \"void\";\n\nexport const InvoiceStatusSchema: z.ZodType<InvoiceStatus> = z.enum([\n \"draft\",\n \"open\",\n \"paid\",\n \"processing\",\n \"void\",\n]);\n\nexport interface InvoiceLineItem {\n amount?: number;\n description?: string;\n priceId?: string;\n productId?: string;\n quantity?: number;\n}\n\nexport const InvoiceLineItemSchema: z.ZodType<InvoiceLineItem> = z.object({\n amount: z.number().optional(),\n description: z.string().optional(),\n priceId: z.string().optional(),\n productId: z.string().optional(),\n quantity: z.number().optional(),\n});\n\nexport type PaymentMethodType = \"bankAccount\" | \"creditCard\";\n\nexport const PaymentMethodTypeSchema: z.ZodType<PaymentMethodType> = z.enum([\n \"creditCard\",\n \"bankAccount\",\n]);\n\nexport interface PaymentMethodPreference {\n feePaidByClient?: boolean;\n type?: PaymentMethodType;\n}\n\nexport const PaymentMethodPreferenceSchema: z.ZodType<PaymentMethodPreference> = z.object({\n feePaidByClient: z.boolean().optional(),\n type: PaymentMethodTypeSchema.optional(),\n});\n\nexport interface Invoice {\n billingReason?: string;\n clientId?: string;\n collectionMethod?: string;\n companyId?: string;\n createdAt: string;\n currency?: string;\n dueDate?: string;\n fileUrl?: string;\n id: string;\n lineItems?: InvoiceLineItem[];\n memo?: string;\n number?: string;\n object: \"invoice\";\n paymentMethodPreferences?: PaymentMethodPreference[];\n paymentSuccessDate?: string | null;\n receiptNumber?: string;\n receiptUrl?: string;\n /** @deprecated Use `clientId`/`companyId` instead. */\n recipientId?: string;\n sentDate?: string;\n status?: InvoiceStatus;\n taxAmount?: number;\n taxPercentage?: number;\n total?: number;\n updatedAt?: string;\n}\n\nexport const InvoiceSchema: z.ZodType<Invoice> = z.object({\n billingReason: z.string().optional(),\n clientId: z.string().optional(),\n collectionMethod: z.string().optional(),\n companyId: z.string().optional(),\n createdAt: z.iso.datetime(),\n currency: z.string().optional(),\n dueDate: z.string().optional(),\n fileUrl: z.string().optional(),\n id: z.string(),\n lineItems: z.array(InvoiceLineItemSchema).optional(),\n memo: z.string().optional(),\n number: z.string().optional(),\n object: z.literal(\"invoice\"),\n paymentMethodPreferences: z.array(PaymentMethodPreferenceSchema).optional(),\n paymentSuccessDate: z.string().nullable().optional(),\n receiptNumber: z.string().optional(),\n receiptUrl: z.string().optional(),\n recipientId: z.string().optional(),\n sentDate: z.string().optional(),\n status: InvoiceStatusSchema.optional(),\n taxAmount: z.number().optional(),\n taxPercentage: z.number().optional(),\n total: z.number().optional(),\n updatedAt: z.iso.datetime().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Response types\n// ---------------------------------------------------------------------------\n\nexport const InvoiceResponseSchema: z.ZodType<Invoice> = InvoiceSchema;\nexport type InvoiceResponse = Invoice;\n\nexport interface InvoicesResponse {\n data: Invoice[] | null;\n nextToken?: string;\n}\n\nexport const InvoicesResponseSchema: z.ZodType<InvoicesResponse> = z.object({\n data: z.array(InvoiceSchema).nullable(),\n nextToken: z.string().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Request types\n// ---------------------------------------------------------------------------\n\nexport interface InvoiceLineItemRequest {\n amount: number;\n description: string;\n priceId: string;\n productId: string;\n quantity: number;\n}\n\nexport const InvoiceLineItemRequestSchema: z.ZodType<InvoiceLineItemRequest> = z.object({\n amount: z.number(),\n description: z.string(),\n priceId: z.string(),\n productId: z.string(),\n quantity: z.number(),\n});\n\nexport interface InvoicePaymentMethodPreferenceRequest {\n feePaidByClient?: boolean;\n type: string;\n}\n\nexport const InvoicePaymentMethodPreferenceRequestSchema: z.ZodType<InvoicePaymentMethodPreferenceRequest> =\n z.object({\n feePaidByClient: z.boolean().optional(),\n type: z.string(),\n });\n\nexport interface InvoiceCreateRequest {\n clientId: string;\n companyId?: string;\n currency?: string;\n dueDate?: string;\n lineItems: InvoiceLineItemRequest[];\n memo?: string;\n paymentMethodPreferences?: InvoicePaymentMethodPreferenceRequest[];\n}\n\nexport const InvoiceCreateRequestSchema: z.ZodType<InvoiceCreateRequest> = z.object({\n clientId: z.string(),\n companyId: z.string().optional(),\n currency: z.string().optional(),\n dueDate: z.string().optional(),\n lineItems: z.array(InvoiceLineItemRequestSchema),\n memo: z.string().optional(),\n paymentMethodPreferences: z.array(InvoicePaymentMethodPreferenceRequestSchema).optional(),\n});\n"],"mappings":";;AAQA,MAAa,sBAAgD,EAAE,KAAK;CAClE;CACA;CACA;CACA;CACA;CACD,CAAC;AAUF,MAAa,wBAAoD,EAAE,OAAO;CACxE,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAChC,CAAC;AAIF,MAAa,0BAAwD,EAAE,KAAK,CAC1E,cACA,cACD,CAAC;AAOF,MAAa,gCAAoE,EAAE,OAAO;CACxF,iBAAiB,EAAE,SAAS,CAAC,UAAU;CACvC,MAAM,wBAAwB,UAAU;CACzC,CAAC;AA8BF,MAAa,gBAAoC,EAAE,OAAO;CACxD,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,kBAAkB,EAAE,QAAQ,CAAC,UAAU;CACvC,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EAAE,IAAI,UAAU;CAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,IAAI,EAAE,QAAQ;CACd,WAAW,EAAE,MAAM,sBAAsB,CAAC,UAAU;CACpD,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,QAAQ,EAAE,QAAQ,UAAU;CAC5B,0BAA0B,EAAE,MAAM,8BAA8B,CAAC,UAAU;CAC3E,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CACpD,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,YAAY,EAAE,QAAQ,CAAC,UAAU;CACjC,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,QAAQ,oBAAoB,UAAU;CACtC,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,OAAO,EAAE,QAAQ,CAAC,UAAU;CAC5B,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CACvC,CAAC;AAMF,MAAa,wBAA4C;AAQzD,MAAa,yBAAsD,EAAE,OAAO;CAC1E,MAAM,EAAE,MAAM,cAAc,CAAC,UAAU;CACvC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAcF,MAAa,+BAAkE,EAAE,OAAO;CACtF,QAAQ,EAAE,QAAQ;CAClB,aAAa,EAAE,QAAQ;CACvB,SAAS,EAAE,QAAQ;CACnB,WAAW,EAAE,QAAQ;CACrB,UAAU,EAAE,QAAQ;CACrB,CAAC;AAOF,MAAa,8CACX,EAAE,OAAO;CACP,iBAAiB,EAAE,SAAS,CAAC,UAAU;CACvC,MAAM,EAAE,QAAQ;CACjB,CAAC;AAYJ,MAAa,6BAA8D,EAAE,OAAO;CAClF,UAAU,EAAE,QAAQ;CACpB,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,WAAW,EAAE,MAAM,6BAA6B;CAChD,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,0BAA0B,EAAE,MAAM,4CAA4C,CAAC,UAAU;CAC1F,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { Transport } from "../../../transport/http.mjs";
2
+ import { CurrentUser } from "./schema.mjs";
3
+
4
+ //#region src/lib/modules/me/resource.d.ts
5
+ declare class MeResource {
6
+ #private;
7
+ constructor({
8
+ transport,
9
+ validateResponses
10
+ }: {
11
+ transport: Transport;
12
+ validateResponses: boolean;
13
+ });
14
+ /** Retrieve the user that owns the API key making the request. */
15
+ retrieve(): Promise<CurrentUser>;
16
+ }
17
+ //#endregion
18
+ export { MeResource };
19
+ //# sourceMappingURL=resource.d.mts.map
@@ -0,0 +1,23 @@
1
+ import { parseResponse } from "../../../transport/parse-response.mjs";
2
+ import { CurrentUserResponseSchema } from "./schema.mjs";
3
+ //#region src/lib/modules/me/resource.ts
4
+ var MeResource = class {
5
+ #transport;
6
+ #validate;
7
+ constructor({ transport, validateResponses }) {
8
+ this.#transport = transport;
9
+ this.#validate = validateResponses;
10
+ }
11
+ /** Retrieve the user that owns the API key making the request. */
12
+ async retrieve() {
13
+ return parseResponse({
14
+ schema: CurrentUserResponseSchema,
15
+ data: await this.#transport.get("v1/me"),
16
+ validate: this.#validate
17
+ });
18
+ }
19
+ };
20
+ //#endregion
21
+ export { MeResource };
22
+
23
+ //# sourceMappingURL=resource.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/me/resource.ts"],"sourcesContent":["import type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport { CurrentUserResponseSchema } from \"./schema\";\nimport type { CurrentUser } from \"./schema\";\n\nexport class MeResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** Retrieve the user that owns the API key making the request. */\n async retrieve(): Promise<CurrentUser> {\n const raw: unknown = await this.#transport.get(\"v1/me\");\n return parseResponse({\n schema: CurrentUserResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n}\n"],"mappings":";;;AAMA,IAAa,aAAb,MAAwB;CACtB;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,WAAiC;AAErC,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHmB,MAAA,UAAgB,IAAI,QAAQ;GAIrD,UAAU,MAAA;GACX,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/lib/modules/me/schema.d.ts
4
+ interface CurrentUser {
5
+ email: string;
6
+ familyName: string;
7
+ givenName: string;
8
+ id: string;
9
+ }
10
+ declare const CurrentUserSchema: z.ZodType<CurrentUser>;
11
+ declare const CurrentUserResponseSchema: z.ZodType<CurrentUser>;
12
+ type CurrentUserResponse = CurrentUser;
13
+ //#endregion
14
+ export { CurrentUser, CurrentUserResponse, CurrentUserResponseSchema, CurrentUserSchema };
15
+ //# sourceMappingURL=schema.d.mts.map
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ //#region src/lib/modules/me/schema.ts
3
+ const CurrentUserSchema = z.object({
4
+ email: z.string(),
5
+ familyName: z.string(),
6
+ givenName: z.string(),
7
+ id: z.string()
8
+ });
9
+ const CurrentUserResponseSchema = CurrentUserSchema;
10
+ //#endregion
11
+ export { CurrentUserResponseSchema, CurrentUserSchema };
12
+
13
+ //# sourceMappingURL=schema.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/me/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ─── Base ─────────────────────────────────────────────────────────────────────\n\nexport interface CurrentUser {\n email: string;\n familyName: string;\n givenName: string;\n id: string;\n}\n\nexport const CurrentUserSchema: z.ZodType<CurrentUser> = z.object({\n email: z.string(),\n familyName: z.string(),\n givenName: z.string(),\n id: z.string(),\n});\n\n// ─── Response ─────────────────────────────────────────────────────────────────\n\nexport const CurrentUserResponseSchema: z.ZodType<CurrentUser> = CurrentUserSchema;\nexport type CurrentUserResponse = CurrentUser;\n"],"mappings":";;AAWA,MAAa,oBAA4C,EAAE,OAAO;CAChE,OAAO,EAAE,QAAQ;CACjB,YAAY,EAAE,QAAQ;CACtB,WAAW,EAAE,QAAQ;CACrB,IAAI,EAAE,QAAQ;CACf,CAAC;AAIF,MAAa,4BAAoD"}
@@ -1,6 +1,6 @@
1
1
  import { Transport } from "../../../transport/http.mjs";
2
2
  import { ListArgs } from "../../pagination/paginate.mjs";
3
- import { MessageChannel, MessageChannelCreateRequest, MessageChannelsResponse } from "./schema.mjs";
3
+ import { MessageChannel, MessageChannelCreateRequest, MessageChannelsResponse, UnreadMessageChannelsResponse } from "./schema.mjs";
4
4
 
5
5
  //#region src/lib/modules/message-channels/resource.d.ts
6
6
  declare class MessageChannelsResource {
@@ -16,6 +16,10 @@ declare class MessageChannelsResource {
16
16
  create(body: MessageChannelCreateRequest): Promise<MessageChannel>;
17
17
  /** List message channels. */
18
18
  list(args?: ListArgs): Promise<MessageChannelsResponse>;
19
+ /** List the channels where a user has unread messages. Defaults to the authenticated user. */
20
+ listUnread(args?: {
21
+ userId?: string;
22
+ }): Promise<UnreadMessageChannelsResponse>;
19
23
  /** Retrieve a single message channel by ID. */
20
24
  retrieve(id: string): Promise<MessageChannel>;
21
25
  /** Iterate over all message channels, automatically paginating. Default limit per page: 500. */
@@ -1,7 +1,7 @@
1
1
  import { buildSearchParams } from "../../../transport/build-search-params.mjs";
2
2
  import { parseResponse } from "../../../transport/parse-response.mjs";
3
3
  import { paginate } from "../../pagination/paginate.mjs";
4
- import { MessageChannelResponseSchema, MessageChannelsResponseSchema } from "./schema.mjs";
4
+ import { MessageChannelResponseSchema, MessageChannelsResponseSchema, UnreadMessageChannelsResponseSchema } from "./schema.mjs";
5
5
  //#region src/lib/modules/message-channels/resource.ts
6
6
  var MessageChannelsResource = class {
7
7
  #transport;
@@ -26,6 +26,14 @@ var MessageChannelsResource = class {
26
26
  validate: this.#validate
27
27
  });
28
28
  }
29
+ /** List the channels where a user has unread messages. Defaults to the authenticated user. */
30
+ async listUnread(args = {}) {
31
+ return parseResponse({
32
+ schema: UnreadMessageChannelsResponseSchema,
33
+ data: await this.#transport.get("v1/message-channels/unread", { searchParams: buildSearchParams(args) }),
34
+ validate: this.#validate
35
+ });
36
+ }
29
37
  /** Retrieve a single message channel by ID. */
30
38
  async retrieve(id) {
31
39
  return parseResponse({
@@ -1 +1 @@
1
- {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/message-channels/resource.ts"],"sourcesContent":["import { paginate } from \"src/lib/pagination\";\nimport type { ListArgs } from \"src/lib/pagination\";\nimport { buildSearchParams } from \"src/transport/build-search-params\";\nimport type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport { MessageChannelResponseSchema, MessageChannelsResponseSchema } from \"./schema\";\nimport type {\n MessageChannel,\n MessageChannelCreateRequest,\n MessageChannelsResponse,\n} from \"./schema\";\n\nexport class MessageChannelsResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** Create a message channel. */\n async create(body: MessageChannelCreateRequest): Promise<MessageChannel> {\n const raw: unknown = await this.#transport.post(\"v1/message-channels\", body);\n return parseResponse({\n schema: MessageChannelResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** List message channels. */\n async list(args: ListArgs = {}): Promise<MessageChannelsResponse> {\n const raw: unknown = await this.#transport.get(\"v1/message-channels\", {\n searchParams: buildSearchParams(args),\n });\n return parseResponse({\n schema: MessageChannelsResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Retrieve a single message channel by ID. */\n async retrieve(id: string): Promise<MessageChannel> {\n const raw: unknown = await this.#transport.get(`v1/message-channels/${id}`);\n return parseResponse({\n schema: MessageChannelResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Iterate over all message channels, automatically paginating. Default limit per page: 500. */\n async listAll(args: Omit<ListArgs, \"nextToken\"> = {}): Promise<MessageChannel[]> {\n return paginate((listArgs) => this.list({ ...args, ...listArgs }), {\n limit: args.limit ?? 500,\n });\n }\n}\n"],"mappings":";;;;;AAaA,IAAa,0BAAb,MAAqC;CACnC;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,OAAO,MAA4D;AAEvE,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHmB,MAAA,UAAgB,KAAK,uBAAuB,KAAK;GAI1E,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,KAAK,OAAiB,EAAE,EAAoC;AAIhE,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MALmB,MAAA,UAAgB,IAAI,uBAAuB,EACpE,cAAc,kBAAkB,KAAK,EACtC,CAAC;GAIA,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,SAAS,IAAqC;AAElD,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHmB,MAAA,UAAgB,IAAI,uBAAuB,KAAK;GAIzE,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,QAAQ,OAAoC,EAAE,EAA6B;AAC/E,SAAO,UAAU,aAAa,KAAK,KAAK;GAAE,GAAG;GAAM,GAAG;GAAU,CAAC,EAAE,EACjE,OAAO,KAAK,SAAS,KACtB,CAAC"}
1
+ {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/message-channels/resource.ts"],"sourcesContent":["import { paginate } from \"src/lib/pagination\";\nimport type { ListArgs } from \"src/lib/pagination\";\nimport { buildSearchParams } from \"src/transport/build-search-params\";\nimport type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport {\n MessageChannelResponseSchema,\n MessageChannelsResponseSchema,\n UnreadMessageChannelsResponseSchema,\n} from \"./schema\";\nimport type {\n MessageChannel,\n MessageChannelCreateRequest,\n MessageChannelsResponse,\n UnreadMessageChannelsResponse,\n} from \"./schema\";\n\nexport class MessageChannelsResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** Create a message channel. */\n async create(body: MessageChannelCreateRequest): Promise<MessageChannel> {\n const raw: unknown = await this.#transport.post(\"v1/message-channels\", body);\n return parseResponse({\n schema: MessageChannelResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** List message channels. */\n async list(args: ListArgs = {}): Promise<MessageChannelsResponse> {\n const raw: unknown = await this.#transport.get(\"v1/message-channels\", {\n searchParams: buildSearchParams(args),\n });\n return parseResponse({\n schema: MessageChannelsResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** List the channels where a user has unread messages. Defaults to the authenticated user. */\n async listUnread(args: { userId?: string } = {}): Promise<UnreadMessageChannelsResponse> {\n const raw: unknown = await this.#transport.get(\"v1/message-channels/unread\", {\n searchParams: buildSearchParams(args),\n });\n return parseResponse({\n schema: UnreadMessageChannelsResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Retrieve a single message channel by ID. */\n async retrieve(id: string): Promise<MessageChannel> {\n const raw: unknown = await this.#transport.get(`v1/message-channels/${id}`);\n return parseResponse({\n schema: MessageChannelResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Iterate over all message channels, automatically paginating. Default limit per page: 500. */\n async listAll(args: Omit<ListArgs, \"nextToken\"> = {}): Promise<MessageChannel[]> {\n return paginate((listArgs) => this.list({ ...args, ...listArgs }), {\n limit: args.limit ?? 500,\n });\n }\n}\n"],"mappings":";;;;;AAkBA,IAAa,0BAAb,MAAqC;CACnC;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,OAAO,MAA4D;AAEvE,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHmB,MAAA,UAAgB,KAAK,uBAAuB,KAAK;GAI1E,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,KAAK,OAAiB,EAAE,EAAoC;AAIhE,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MALmB,MAAA,UAAgB,IAAI,uBAAuB,EACpE,cAAc,kBAAkB,KAAK,EACtC,CAAC;GAIA,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,WAAW,OAA4B,EAAE,EAA0C;AAIvF,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MALmB,MAAA,UAAgB,IAAI,8BAA8B,EAC3E,cAAc,kBAAkB,KAAK,EACtC,CAAC;GAIA,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,SAAS,IAAqC;AAElD,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHmB,MAAA,UAAgB,IAAI,uBAAuB,KAAK;GAIzE,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,QAAQ,OAAoC,EAAE,EAA6B;AAC/E,SAAO,UAAU,aAAa,KAAK,KAAK;GAAE,GAAG;GAAM,GAAG;GAAU,CAAC,EAAE,EACjE,OAAO,KAAK,SAAS,KACtB,CAAC"}
@@ -8,11 +8,15 @@ interface MessageChannel {
8
8
  createdAt: string;
9
9
  id: string;
10
10
  lastMessageDate?: string | null;
11
+ /** Populated by `listUnread()`; omitted otherwise. */
12
+ lastRead?: string;
11
13
  memberIds?: string[];
12
14
  /** @deprecated Use `clientId`/`companyId` instead. */
13
15
  membershipEntityId?: string;
14
16
  membershipType: MembershipType;
15
17
  object: "messageChannel";
18
+ /** Populated by `listUnread()`; omitted otherwise. */
19
+ unreadCount?: number;
16
20
  updatedAt?: string;
17
21
  }
18
22
  declare const MessageChannelSchema: z.ZodType<MessageChannel>;
@@ -23,6 +27,11 @@ interface MessageChannelsResponse {
23
27
  nextToken?: string;
24
28
  }
25
29
  declare const MessageChannelsResponseSchema: z.ZodType<MessageChannelsResponse>;
30
+ interface UnreadMessageChannelsResponse {
31
+ totalUnreadCount?: number;
32
+ unreadChannels?: MessageChannel[];
33
+ }
34
+ declare const UnreadMessageChannelsResponseSchema: z.ZodType<UnreadMessageChannelsResponse>;
26
35
  interface MessageChannelCreateRequest {
27
36
  clientId?: string;
28
37
  companyId?: string;
@@ -31,5 +40,5 @@ interface MessageChannelCreateRequest {
31
40
  }
32
41
  declare const MessageChannelCreateRequestSchema: z.ZodType<MessageChannelCreateRequest>;
33
42
  //#endregion
34
- export { MessageChannel, MessageChannelCreateRequest, MessageChannelCreateRequestSchema, MessageChannelResponse, MessageChannelResponseSchema, MessageChannelSchema, MessageChannelsResponse, MessageChannelsResponseSchema };
43
+ export { MessageChannel, MessageChannelCreateRequest, MessageChannelCreateRequestSchema, MessageChannelResponse, MessageChannelResponseSchema, MessageChannelSchema, MessageChannelsResponse, MessageChannelsResponseSchema, UnreadMessageChannelsResponse, UnreadMessageChannelsResponseSchema };
35
44
  //# sourceMappingURL=schema.d.mts.map
@@ -7,10 +7,12 @@ const MessageChannelSchema = z.object({
7
7
  createdAt: z.iso.datetime(),
8
8
  id: z.string(),
9
9
  lastMessageDate: z.string().nullable().optional(),
10
+ lastRead: z.string().optional(),
10
11
  memberIds: z.array(z.string()).optional(),
11
12
  membershipEntityId: z.string().optional(),
12
13
  membershipType: MembershipTypeSchema,
13
14
  object: z.literal("messageChannel"),
15
+ unreadCount: z.number().optional(),
14
16
  updatedAt: z.iso.datetime().optional()
15
17
  });
16
18
  const MessageChannelResponseSchema = MessageChannelSchema;
@@ -18,6 +20,10 @@ const MessageChannelsResponseSchema = z.object({
18
20
  data: z.array(MessageChannelSchema).nullable(),
19
21
  nextToken: z.string().optional()
20
22
  });
23
+ const UnreadMessageChannelsResponseSchema = z.object({
24
+ totalUnreadCount: z.number().optional(),
25
+ unreadChannels: z.array(MessageChannelSchema).optional()
26
+ });
21
27
  const MessageChannelCreateRequestSchema = z.object({
22
28
  clientId: z.string().optional(),
23
29
  companyId: z.string().optional(),
@@ -25,6 +31,6 @@ const MessageChannelCreateRequestSchema = z.object({
25
31
  membershipType: MembershipTypeSchema
26
32
  });
27
33
  //#endregion
28
- export { MessageChannelCreateRequestSchema, MessageChannelResponseSchema, MessageChannelSchema, MessageChannelsResponseSchema };
34
+ export { MessageChannelCreateRequestSchema, MessageChannelResponseSchema, MessageChannelSchema, MessageChannelsResponseSchema, UnreadMessageChannelsResponseSchema };
29
35
 
30
36
  //# sourceMappingURL=schema.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/message-channels/schema.ts"],"sourcesContent":["import { MembershipTypeSchema } from \"src/schemas/shared/membership-type\";\nimport type { MembershipType } from \"src/schemas/shared/membership-type\";\nimport { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Base types\n// ---------------------------------------------------------------------------\n\nexport interface MessageChannel {\n clientId?: string | null;\n companyId?: string | null;\n createdAt: string;\n id: string;\n lastMessageDate?: string | null;\n memberIds?: string[];\n /** @deprecated Use `clientId`/`companyId` instead. */\n membershipEntityId?: string;\n membershipType: MembershipType;\n object: \"messageChannel\";\n updatedAt?: string;\n}\n\nexport const MessageChannelSchema: z.ZodType<MessageChannel> = z.object({\n clientId: z.string().nullable().optional(),\n companyId: z.string().nullable().optional(),\n createdAt: z.iso.datetime(),\n id: z.string(),\n lastMessageDate: z.string().nullable().optional(),\n memberIds: z.array(z.string()).optional(),\n membershipEntityId: z.string().optional(),\n membershipType: MembershipTypeSchema,\n object: z.literal(\"messageChannel\"),\n updatedAt: z.iso.datetime().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Response types\n// ---------------------------------------------------------------------------\n\nexport const MessageChannelResponseSchema: z.ZodType<MessageChannel> = MessageChannelSchema;\nexport type MessageChannelResponse = MessageChannel;\n\nexport interface MessageChannelsResponse {\n data: MessageChannel[] | null;\n nextToken?: string;\n}\n\nexport const MessageChannelsResponseSchema: z.ZodType<MessageChannelsResponse> = z.object({\n data: z.array(MessageChannelSchema).nullable(),\n nextToken: z.string().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Request types\n// ---------------------------------------------------------------------------\n\nexport interface MessageChannelCreateRequest {\n clientId?: string;\n companyId?: string;\n memberIds?: string[];\n membershipType: MembershipType;\n}\n\nexport const MessageChannelCreateRequestSchema: z.ZodType<MessageChannelCreateRequest> = z.object({\n clientId: z.string().optional(),\n companyId: z.string().optional(),\n memberIds: z.array(z.string()).optional(),\n membershipType: MembershipTypeSchema,\n});\n"],"mappings":";;;AAsBA,MAAa,uBAAkD,EAAE,OAAO;CACtE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC3C,WAAW,EAAE,IAAI,UAAU;CAC3B,IAAI,EAAE,QAAQ;CACd,iBAAiB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CACjD,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACzC,oBAAoB,EAAE,QAAQ,CAAC,UAAU;CACzC,gBAAgB;CAChB,QAAQ,EAAE,QAAQ,iBAAiB;CACnC,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CACvC,CAAC;AAMF,MAAa,+BAA0D;AAQvE,MAAa,gCAAoE,EAAE,OAAO;CACxF,MAAM,EAAE,MAAM,qBAAqB,CAAC,UAAU;CAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAaF,MAAa,oCAA4E,EAAE,OAAO;CAChG,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACzC,gBAAgB;CACjB,CAAC"}
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/message-channels/schema.ts"],"sourcesContent":["import { MembershipTypeSchema } from \"src/schemas/shared/membership-type\";\nimport type { MembershipType } from \"src/schemas/shared/membership-type\";\nimport { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Base types\n// ---------------------------------------------------------------------------\n\nexport interface MessageChannel {\n clientId?: string | null;\n companyId?: string | null;\n createdAt: string;\n id: string;\n lastMessageDate?: string | null;\n /** Populated by `listUnread()`; omitted otherwise. */\n lastRead?: string;\n memberIds?: string[];\n /** @deprecated Use `clientId`/`companyId` instead. */\n membershipEntityId?: string;\n membershipType: MembershipType;\n object: \"messageChannel\";\n /** Populated by `listUnread()`; omitted otherwise. */\n unreadCount?: number;\n updatedAt?: string;\n}\n\nexport const MessageChannelSchema: z.ZodType<MessageChannel> = z.object({\n clientId: z.string().nullable().optional(),\n companyId: z.string().nullable().optional(),\n createdAt: z.iso.datetime(),\n id: z.string(),\n lastMessageDate: z.string().nullable().optional(),\n lastRead: z.string().optional(),\n memberIds: z.array(z.string()).optional(),\n membershipEntityId: z.string().optional(),\n membershipType: MembershipTypeSchema,\n object: z.literal(\"messageChannel\"),\n unreadCount: z.number().optional(),\n updatedAt: z.iso.datetime().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Response types\n// ---------------------------------------------------------------------------\n\nexport const MessageChannelResponseSchema: z.ZodType<MessageChannel> = MessageChannelSchema;\nexport type MessageChannelResponse = MessageChannel;\n\nexport interface MessageChannelsResponse {\n data: MessageChannel[] | null;\n nextToken?: string;\n}\n\nexport const MessageChannelsResponseSchema: z.ZodType<MessageChannelsResponse> = z.object({\n data: z.array(MessageChannelSchema).nullable(),\n nextToken: z.string().optional(),\n});\n\nexport interface UnreadMessageChannelsResponse {\n totalUnreadCount?: number;\n unreadChannels?: MessageChannel[];\n}\n\nexport const UnreadMessageChannelsResponseSchema: z.ZodType<UnreadMessageChannelsResponse> =\n z.object({\n totalUnreadCount: z.number().optional(),\n unreadChannels: z.array(MessageChannelSchema).optional(),\n });\n\n// ---------------------------------------------------------------------------\n// Request types\n// ---------------------------------------------------------------------------\n\nexport interface MessageChannelCreateRequest {\n clientId?: string;\n companyId?: string;\n memberIds?: string[];\n membershipType: MembershipType;\n}\n\nexport const MessageChannelCreateRequestSchema: z.ZodType<MessageChannelCreateRequest> = z.object({\n clientId: z.string().optional(),\n companyId: z.string().optional(),\n memberIds: z.array(z.string()).optional(),\n membershipType: MembershipTypeSchema,\n});\n"],"mappings":";;;AA0BA,MAAa,uBAAkD,EAAE,OAAO;CACtE,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC1C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CAC3C,WAAW,EAAE,IAAI,UAAU;CAC3B,IAAI,EAAE,QAAQ;CACd,iBAAiB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU;CACjD,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACzC,oBAAoB,EAAE,QAAQ,CAAC,UAAU;CACzC,gBAAgB;CAChB,QAAQ,EAAE,QAAQ,iBAAiB;CACnC,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CACvC,CAAC;AAMF,MAAa,+BAA0D;AAQvE,MAAa,gCAAoE,EAAE,OAAO;CACxF,MAAM,EAAE,MAAM,qBAAqB,CAAC,UAAU;CAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAOF,MAAa,sCACX,EAAE,OAAO;CACP,kBAAkB,EAAE,QAAQ,CAAC,UAAU;CACvC,gBAAgB,EAAE,MAAM,qBAAqB,CAAC,UAAU;CACzD,CAAC;AAaJ,MAAa,oCAA4E,EAAE,OAAO;CAChG,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,WAAW,EAAE,QAAQ,CAAC,UAAU;CAChC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACzC,gBAAgB;CACjB,CAAC"}
@@ -15,6 +15,8 @@ declare class NotificationsResource {
15
15
  create(body: NotificationCreateRequest): Promise<Notification>;
16
16
  /** List notifications. */
17
17
  list(): Promise<NotificationsResponse>;
18
+ /** Retrieve a single notification by ID. */
19
+ retrieve(id: string): Promise<Notification>;
18
20
  /** Delete a notification by ID. */
19
21
  delete(id: string): Promise<void>;
20
22
  /** Mark a notification as read. */
@@ -25,6 +25,14 @@ var NotificationsResource = class {
25
25
  validate: this.#validate
26
26
  });
27
27
  }
28
+ /** Retrieve a single notification by ID. */
29
+ async retrieve(id) {
30
+ return parseResponse({
31
+ schema: NotificationResponseSchema,
32
+ data: await this.#transport.get(`v1/notifications/${id}`),
33
+ validate: this.#validate
34
+ });
35
+ }
28
36
  /** Delete a notification by ID. */
29
37
  async delete(id) {
30
38
  await this.#transport.delete(`v1/notifications/${id}`);
@@ -1 +1 @@
1
- {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/notifications/resource.ts"],"sourcesContent":["import { buildSearchParams } from \"src/transport/build-search-params\";\nimport type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport { NotificationResponseSchema, NotificationsResponseSchema } from \"./schema\";\nimport type { Notification, NotificationCreateRequest, NotificationsResponse } from \"./schema\";\n\nexport class NotificationsResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** Create a new notification. */\n async create(body: NotificationCreateRequest): Promise<Notification> {\n const raw = await this.#transport.post<unknown>(\"v1/notifications\", body);\n return parseResponse({\n schema: NotificationResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** List notifications. */\n async list(): Promise<NotificationsResponse> {\n const raw = await this.#transport.get<unknown>(\"v1/notifications\", {\n searchParams: buildSearchParams(),\n });\n return parseResponse({\n schema: NotificationsResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Delete a notification by ID. */\n async delete(id: string): Promise<void> {\n await this.#transport.delete(`v1/notifications/${id}`);\n }\n\n /** Mark a notification as read. */\n async markRead(id: string): Promise<Notification> {\n const raw = await this.#transport.post<unknown>(`v1/notifications/${id}/read`);\n return parseResponse({\n schema: NotificationResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Mark a notification as unread. */\n async markUnread(id: string): Promise<Notification> {\n const raw = await this.#transport.post<unknown>(`v1/notifications/${id}/unread`);\n return parseResponse({\n schema: NotificationResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n}\n"],"mappings":";;;;AAOA,IAAa,wBAAb,MAAmC;CACjC;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,OAAO,MAAwD;AAEnE,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHU,MAAA,UAAgB,KAAc,oBAAoB,KAAK;GAIvE,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,OAAuC;AAI3C,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MALU,MAAA,UAAgB,IAAa,oBAAoB,EACjE,cAAc,mBAAmB,EAClC,CAAC;GAIA,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,OAAO,IAA2B;AACtC,QAAM,MAAA,UAAgB,OAAO,oBAAoB,KAAK;;;CAIxD,MAAM,SAAS,IAAmC;AAEhD,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHU,MAAA,UAAgB,KAAc,oBAAoB,GAAG,OAAO;GAI5E,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,WAAW,IAAmC;AAElD,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHU,MAAA,UAAgB,KAAc,oBAAoB,GAAG,SAAS;GAI9E,UAAU,MAAA;GACX,CAAC"}
1
+ {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/notifications/resource.ts"],"sourcesContent":["import { buildSearchParams } from \"src/transport/build-search-params\";\nimport type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport { NotificationResponseSchema, NotificationsResponseSchema } from \"./schema\";\nimport type { Notification, NotificationCreateRequest, NotificationsResponse } from \"./schema\";\n\nexport class NotificationsResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** Create a new notification. */\n async create(body: NotificationCreateRequest): Promise<Notification> {\n const raw = await this.#transport.post<unknown>(\"v1/notifications\", body);\n return parseResponse({\n schema: NotificationResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** List notifications. */\n async list(): Promise<NotificationsResponse> {\n const raw = await this.#transport.get<unknown>(\"v1/notifications\", {\n searchParams: buildSearchParams(),\n });\n return parseResponse({\n schema: NotificationsResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Retrieve a single notification by ID. */\n async retrieve(id: string): Promise<Notification> {\n const raw = await this.#transport.get<unknown>(`v1/notifications/${id}`);\n return parseResponse({\n schema: NotificationResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Delete a notification by ID. */\n async delete(id: string): Promise<void> {\n await this.#transport.delete(`v1/notifications/${id}`);\n }\n\n /** Mark a notification as read. */\n async markRead(id: string): Promise<Notification> {\n const raw = await this.#transport.post<unknown>(`v1/notifications/${id}/read`);\n return parseResponse({\n schema: NotificationResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n\n /** Mark a notification as unread. */\n async markUnread(id: string): Promise<Notification> {\n const raw = await this.#transport.post<unknown>(`v1/notifications/${id}/unread`);\n return parseResponse({\n schema: NotificationResponseSchema,\n data: raw,\n validate: this.#validate,\n });\n }\n}\n"],"mappings":";;;;AAOA,IAAa,wBAAb,MAAmC;CACjC;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,OAAO,MAAwD;AAEnE,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHU,MAAA,UAAgB,KAAc,oBAAoB,KAAK;GAIvE,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,OAAuC;AAI3C,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MALU,MAAA,UAAgB,IAAa,oBAAoB,EACjE,cAAc,mBAAmB,EAClC,CAAC;GAIA,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,SAAS,IAAmC;AAEhD,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHU,MAAA,UAAgB,IAAa,oBAAoB,KAAK;GAItE,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,OAAO,IAA2B;AACtC,QAAM,MAAA,UAAgB,OAAO,oBAAoB,KAAK;;;CAIxD,MAAM,SAAS,IAAmC;AAEhD,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHU,MAAA,UAAgB,KAAc,oBAAoB,GAAG,OAAO;GAI5E,UAAU,MAAA;GACX,CAAC;;;CAIJ,MAAM,WAAW,IAAmC;AAElD,SAAO,cAAc;GACnB,QAAQ;GACR,MAAM,MAHU,MAAA,UAAgB,KAAc,oBAAoB,GAAG,SAAS;GAI9E,UAAU,MAAA;GACX,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Transport } from "../../../transport/http.mjs";
2
2
  import { ListArgs } from "../../pagination/paginate.mjs";
3
- import { Price, PricesResponse } from "./schema.mjs";
3
+ import { Price, PriceCreateRequest, PricesResponse } from "./schema.mjs";
4
4
 
5
5
  //#region src/lib/modules/prices/resource.d.ts
6
6
  interface ListPricesArgs extends ListArgs {
@@ -15,6 +15,8 @@ declare class PricesResource {
15
15
  transport: Transport;
16
16
  validateResponses: boolean;
17
17
  });
18
+ /** Create a price for an existing product. */
19
+ create(body: PriceCreateRequest): Promise<Price>;
18
20
  /** List prices with optional filters. */
19
21
  list(args?: ListPricesArgs): Promise<PricesResponse>;
20
22
  /** Retrieve a single price by ID. */
@@ -10,6 +10,14 @@ var PricesResource = class {
10
10
  this.#transport = transport;
11
11
  this.#validate = validateResponses;
12
12
  }
13
+ /** Create a price for an existing product. */
14
+ async create(body) {
15
+ return parseResponse({
16
+ schema: PriceResponseSchema,
17
+ data: await this.#transport.post("v1/prices", body),
18
+ validate: this.#validate
19
+ });
20
+ }
13
21
  /** List prices with optional filters. */
14
22
  async list(args = {}) {
15
23
  return parseResponse({
@@ -1 +1 @@
1
- {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/prices/resource.ts"],"sourcesContent":["import { paginate } from \"src/lib/pagination\";\nimport type { ListArgs } from \"src/lib/pagination\";\nimport { buildSearchParams } from \"src/transport/build-search-params\";\nimport type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport { PriceResponseSchema, PricesResponseSchema } from \"./schema\";\nimport type { Price, PricesResponse } from \"./schema\";\n\nexport interface ListPricesArgs extends ListArgs {\n productId?: string;\n}\n\nexport class PricesResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** List prices with optional filters. */\n async list(args: ListPricesArgs = {}): Promise<PricesResponse> {\n const raw: unknown = await this.#transport.get(\"v1/prices\", {\n searchParams: buildSearchParams(args),\n });\n return parseResponse({ schema: PricesResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** Retrieve a single price by ID. */\n async retrieve(id: string): Promise<Price> {\n const raw: unknown = await this.#transport.get(`v1/prices/${id}`);\n return parseResponse({ schema: PriceResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** Iterate over all prices, automatically paginating. Default limit per page: 500. */\n async listAll(args: Omit<ListPricesArgs, \"nextToken\"> = {}): Promise<Price[]> {\n return paginate((listArgs) => this.list({ ...args, ...listArgs }), {\n limit: args.limit ?? 500,\n });\n }\n}\n"],"mappings":";;;;;AAaA,IAAa,iBAAb,MAA4B;CAC1B;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,KAAK,OAAuB,EAAE,EAA2B;AAI7D,SAAO,cAAc;GAAE,QAAQ;GAAsB,MAAM,MAHhC,MAAA,UAAgB,IAAI,aAAa,EAC1D,cAAc,kBAAkB,KAAK,EACtC,CAAC;GAC8D,UAAU,MAAA;GAAgB,CAAC;;;CAI7F,MAAM,SAAS,IAA4B;AAEzC,SAAO,cAAc;GAAE,QAAQ;GAAqB,MAAM,MAD/B,MAAA,UAAgB,IAAI,aAAa,KAAK;GACF,UAAU,MAAA;GAAgB,CAAC;;;CAI5F,MAAM,QAAQ,OAA0C,EAAE,EAAoB;AAC5E,SAAO,UAAU,aAAa,KAAK,KAAK;GAAE,GAAG;GAAM,GAAG;GAAU,CAAC,EAAE,EACjE,OAAO,KAAK,SAAS,KACtB,CAAC"}
1
+ {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/prices/resource.ts"],"sourcesContent":["import { paginate } from \"src/lib/pagination\";\nimport type { ListArgs } from \"src/lib/pagination\";\nimport { buildSearchParams } from \"src/transport/build-search-params\";\nimport type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport { PriceResponseSchema, PricesResponseSchema } from \"./schema\";\nimport type { Price, PriceCreateRequest, PricesResponse } from \"./schema\";\n\nexport interface ListPricesArgs extends ListArgs {\n productId?: string;\n}\n\nexport class PricesResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** Create a price for an existing product. */\n async create(body: PriceCreateRequest): Promise<Price> {\n const raw: unknown = await this.#transport.post(\"v1/prices\", body);\n return parseResponse({ schema: PriceResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** List prices with optional filters. */\n async list(args: ListPricesArgs = {}): Promise<PricesResponse> {\n const raw: unknown = await this.#transport.get(\"v1/prices\", {\n searchParams: buildSearchParams(args),\n });\n return parseResponse({ schema: PricesResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** Retrieve a single price by ID. */\n async retrieve(id: string): Promise<Price> {\n const raw: unknown = await this.#transport.get(`v1/prices/${id}`);\n return parseResponse({ schema: PriceResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** Iterate over all prices, automatically paginating. Default limit per page: 500. */\n async listAll(args: Omit<ListPricesArgs, \"nextToken\"> = {}): Promise<Price[]> {\n return paginate((listArgs) => this.list({ ...args, ...listArgs }), {\n limit: args.limit ?? 500,\n });\n }\n}\n"],"mappings":";;;;;AAaA,IAAa,iBAAb,MAA4B;CAC1B;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,OAAO,MAA0C;AAErD,SAAO,cAAc;GAAE,QAAQ;GAAqB,MAAM,MAD/B,MAAA,UAAgB,KAAK,aAAa,KAAK;GACH,UAAU,MAAA;GAAgB,CAAC;;;CAI5F,MAAM,KAAK,OAAuB,EAAE,EAA2B;AAI7D,SAAO,cAAc;GAAE,QAAQ;GAAsB,MAAM,MAHhC,MAAA,UAAgB,IAAI,aAAa,EAC1D,cAAc,kBAAkB,KAAK,EACtC,CAAC;GAC8D,UAAU,MAAA;GAAgB,CAAC;;;CAI7F,MAAM,SAAS,IAA4B;AAEzC,SAAO,cAAc;GAAE,QAAQ;GAAqB,MAAM,MAD/B,MAAA,UAAgB,IAAI,aAAa,KAAK;GACF,UAAU,MAAA;GAAgB,CAAC;;;CAI5F,MAAM,QAAQ,OAA0C,EAAE,EAAoB;AAC5E,SAAO,UAAU,aAAa,KAAK,KAAK;GAAE,GAAG;GAAM,GAAG;GAAU,CAAC,EAAE,EACjE,OAAO,KAAK,SAAS,KACtB,CAAC"}
@@ -17,6 +17,19 @@ interface PricesResponse {
17
17
  nextToken?: string;
18
18
  }
19
19
  declare const PricesResponseSchema: z.ZodType<PricesResponse>;
20
+ type BillingPeriod = "biannually" | "day" | "month" | "quarterly" | "semiannually" | "week" | "year";
21
+ declare const BillingPeriodSchema: z.ZodType<BillingPeriod>;
22
+ type PriceType = "oneTime" | "recurring";
23
+ declare const PriceTypeSchema: z.ZodType<PriceType>;
24
+ interface PriceCreateRequest {
25
+ amount: number;
26
+ currency?: string;
27
+ interval?: BillingPeriod;
28
+ intervalCount?: number;
29
+ productId: string;
30
+ type?: PriceType;
31
+ }
32
+ declare const PriceCreateRequestSchema: z.ZodType<PriceCreateRequest>;
20
33
  //#endregion
21
- export { Price, PriceResponse, PriceResponseSchema, PriceSchema, PricesResponse, PricesResponseSchema };
34
+ export { BillingPeriod, BillingPeriodSchema, Price, PriceCreateRequest, PriceCreateRequestSchema, PriceResponse, PriceResponseSchema, PriceSchema, PriceType, PriceTypeSchema, PricesResponse, PricesResponseSchema };
22
35
  //# sourceMappingURL=schema.d.mts.map
@@ -13,7 +13,25 @@ const PricesResponseSchema = z.object({
13
13
  data: z.array(PriceSchema).nullable(),
14
14
  nextToken: z.string().optional()
15
15
  });
16
+ const BillingPeriodSchema = z.enum([
17
+ "day",
18
+ "week",
19
+ "month",
20
+ "quarterly",
21
+ "biannually",
22
+ "year",
23
+ "semiannually"
24
+ ]);
25
+ const PriceTypeSchema = z.enum(["oneTime", "recurring"]);
26
+ const PriceCreateRequestSchema = z.object({
27
+ amount: z.number(),
28
+ currency: z.string().optional(),
29
+ interval: BillingPeriodSchema.optional(),
30
+ intervalCount: z.number().optional(),
31
+ productId: z.string(),
32
+ type: PriceTypeSchema.optional()
33
+ });
16
34
  //#endregion
17
- export { PriceResponseSchema, PriceSchema, PricesResponseSchema };
35
+ export { BillingPeriodSchema, PriceCreateRequestSchema, PriceResponseSchema, PriceSchema, PriceTypeSchema, PricesResponseSchema };
18
36
 
19
37
  //# sourceMappingURL=schema.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/prices/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Base types\n// ---------------------------------------------------------------------------\n\nexport interface Price {\n amount?: number;\n currency?: string;\n id: string;\n interval?: string;\n object: \"price\";\n productId?: string;\n}\n\nexport const PriceSchema: z.ZodType<Price> = z.object({\n amount: z.number().optional(),\n currency: z.string().optional(),\n id: z.string(),\n interval: z.string().optional(),\n object: z.literal(\"price\"),\n productId: z.string().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Response types\n// ---------------------------------------------------------------------------\n\nexport const PriceResponseSchema: z.ZodType<Price> = PriceSchema;\nexport type PriceResponse = Price;\n\nexport interface PricesResponse {\n data: Price[] | null;\n nextToken?: string;\n}\n\nexport const PricesResponseSchema: z.ZodType<PricesResponse> = z.object({\n data: z.array(PriceSchema).nullable(),\n nextToken: z.string().optional(),\n});\n"],"mappings":";;AAeA,MAAa,cAAgC,EAAE,OAAO;CACpD,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,IAAI,EAAE,QAAQ;CACd,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,QAAQ,EAAE,QAAQ,QAAQ;CAC1B,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAMF,MAAa,sBAAwC;AAQrD,MAAa,uBAAkD,EAAE,OAAO;CACtE,MAAM,EAAE,MAAM,YAAY,CAAC,UAAU;CACrC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC"}
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/prices/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Base types\n// ---------------------------------------------------------------------------\n\nexport interface Price {\n amount?: number;\n currency?: string;\n id: string;\n interval?: string;\n object: \"price\";\n productId?: string;\n}\n\nexport const PriceSchema: z.ZodType<Price> = z.object({\n amount: z.number().optional(),\n currency: z.string().optional(),\n id: z.string(),\n interval: z.string().optional(),\n object: z.literal(\"price\"),\n productId: z.string().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Response types\n// ---------------------------------------------------------------------------\n\nexport const PriceResponseSchema: z.ZodType<Price> = PriceSchema;\nexport type PriceResponse = Price;\n\nexport interface PricesResponse {\n data: Price[] | null;\n nextToken?: string;\n}\n\nexport const PricesResponseSchema: z.ZodType<PricesResponse> = z.object({\n data: z.array(PriceSchema).nullable(),\n nextToken: z.string().optional(),\n});\n\n// ─── Requests ─────────────────────────────────────────────────────────────────\n\nexport type BillingPeriod =\n | \"biannually\"\n | \"day\"\n | \"month\"\n | \"quarterly\"\n | \"semiannually\"\n | \"week\"\n | \"year\";\n\nexport const BillingPeriodSchema: z.ZodType<BillingPeriod> = z.enum([\n \"day\",\n \"week\",\n \"month\",\n \"quarterly\",\n \"biannually\",\n \"year\",\n \"semiannually\",\n]);\n\nexport type PriceType = \"oneTime\" | \"recurring\";\n\nexport const PriceTypeSchema: z.ZodType<PriceType> = z.enum([\"oneTime\", \"recurring\"]);\n\nexport interface PriceCreateRequest {\n amount: number;\n currency?: string;\n interval?: BillingPeriod;\n intervalCount?: number;\n productId: string;\n type?: PriceType;\n}\n\nexport const PriceCreateRequestSchema: z.ZodType<PriceCreateRequest> = z.object({\n amount: z.number(),\n currency: z.string().optional(),\n interval: BillingPeriodSchema.optional(),\n intervalCount: z.number().optional(),\n productId: z.string(),\n type: PriceTypeSchema.optional(),\n});\n"],"mappings":";;AAeA,MAAa,cAAgC,EAAE,OAAO;CACpD,QAAQ,EAAE,QAAQ,CAAC,UAAU;CAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,IAAI,EAAE,QAAQ;CACd,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,QAAQ,EAAE,QAAQ,QAAQ;CAC1B,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAMF,MAAa,sBAAwC;AAQrD,MAAa,uBAAkD,EAAE,OAAO;CACtE,MAAM,EAAE,MAAM,YAAY,CAAC,UAAU;CACrC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAaF,MAAa,sBAAgD,EAAE,KAAK;CAClE;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;AAIF,MAAa,kBAAwC,EAAE,KAAK,CAAC,WAAW,YAAY,CAAC;AAWrF,MAAa,2BAA0D,EAAE,OAAO;CAC9E,QAAQ,EAAE,QAAQ;CAClB,UAAU,EAAE,QAAQ,CAAC,UAAU;CAC/B,UAAU,oBAAoB,UAAU;CACxC,eAAe,EAAE,QAAQ,CAAC,UAAU;CACpC,WAAW,EAAE,QAAQ;CACrB,MAAM,gBAAgB,UAAU;CACjC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Transport } from "../../../transport/http.mjs";
2
2
  import { ListArgs } from "../../pagination/paginate.mjs";
3
- import { Product, ProductsResponse } from "./schema.mjs";
3
+ import { Product, ProductCreateRequest, ProductsResponse } from "./schema.mjs";
4
4
 
5
5
  //#region src/lib/modules/products/resource.d.ts
6
6
  declare class ProductsResource {
@@ -12,6 +12,8 @@ declare class ProductsResource {
12
12
  transport: Transport;
13
13
  validateResponses: boolean;
14
14
  });
15
+ /** Create a product. */
16
+ create(body: ProductCreateRequest): Promise<Product>;
15
17
  /** List products. */
16
18
  list(args?: ListArgs): Promise<ProductsResponse>;
17
19
  /** Retrieve a single product by ID. */
@@ -10,6 +10,14 @@ var ProductsResource = class {
10
10
  this.#transport = transport;
11
11
  this.#validate = validateResponses;
12
12
  }
13
+ /** Create a product. */
14
+ async create(body) {
15
+ return parseResponse({
16
+ schema: ProductResponseSchema,
17
+ data: await this.#transport.post("v1/products", body),
18
+ validate: this.#validate
19
+ });
20
+ }
13
21
  /** List products. */
14
22
  async list(args = {}) {
15
23
  return parseResponse({
@@ -1 +1 @@
1
- {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/products/resource.ts"],"sourcesContent":["import { paginate } from \"src/lib/pagination\";\nimport type { ListArgs } from \"src/lib/pagination\";\nimport { buildSearchParams } from \"src/transport/build-search-params\";\nimport type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport { ProductResponseSchema, ProductsResponseSchema } from \"./schema\";\nimport type { Product, ProductsResponse } from \"./schema\";\n\nexport class ProductsResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** List products. */\n async list(args: ListArgs = {}): Promise<ProductsResponse> {\n const raw: unknown = await this.#transport.get(\"v1/products\", {\n searchParams: buildSearchParams(args),\n });\n return parseResponse({ schema: ProductsResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** Retrieve a single product by ID. */\n async retrieve(id: string): Promise<Product> {\n const raw: unknown = await this.#transport.get(`v1/products/${id}`);\n return parseResponse({ schema: ProductResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** Iterate over all products, automatically paginating. Default limit per page: 500. */\n async listAll(args: Omit<ListArgs, \"nextToken\"> = {}): Promise<Product[]> {\n return paginate((listArgs) => this.list({ ...args, ...listArgs }), {\n limit: args.limit ?? 500,\n });\n }\n}\n"],"mappings":";;;;;AASA,IAAa,mBAAb,MAA8B;CAC5B;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,KAAK,OAAiB,EAAE,EAA6B;AAIzD,SAAO,cAAc;GAAE,QAAQ;GAAwB,MAAM,MAHlC,MAAA,UAAgB,IAAI,eAAe,EAC5D,cAAc,kBAAkB,KAAK,EACtC,CAAC;GACgE,UAAU,MAAA;GAAgB,CAAC;;;CAI/F,MAAM,SAAS,IAA8B;AAE3C,SAAO,cAAc;GAAE,QAAQ;GAAuB,MAAM,MADjC,MAAA,UAAgB,IAAI,eAAe,KAAK;GACF,UAAU,MAAA;GAAgB,CAAC;;;CAI9F,MAAM,QAAQ,OAAoC,EAAE,EAAsB;AACxE,SAAO,UAAU,aAAa,KAAK,KAAK;GAAE,GAAG;GAAM,GAAG;GAAU,CAAC,EAAE,EACjE,OAAO,KAAK,SAAS,KACtB,CAAC"}
1
+ {"version":3,"file":"resource.mjs","names":["#transport","#validate"],"sources":["../../../../src/lib/modules/products/resource.ts"],"sourcesContent":["import { paginate } from \"src/lib/pagination\";\nimport type { ListArgs } from \"src/lib/pagination\";\nimport { buildSearchParams } from \"src/transport/build-search-params\";\nimport type { Transport } from \"src/transport/http\";\nimport { parseResponse } from \"src/transport/parse-response\";\n\nimport { ProductResponseSchema, ProductsResponseSchema } from \"./schema\";\nimport type { Product, ProductCreateRequest, ProductsResponse } from \"./schema\";\n\nexport class ProductsResource {\n readonly #transport: Transport;\n readonly #validate: boolean;\n\n constructor({\n transport,\n validateResponses,\n }: {\n transport: Transport;\n validateResponses: boolean;\n }) {\n this.#transport = transport;\n this.#validate = validateResponses;\n }\n\n /** Create a product. */\n async create(body: ProductCreateRequest): Promise<Product> {\n const raw: unknown = await this.#transport.post(\"v1/products\", body);\n return parseResponse({ schema: ProductResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** List products. */\n async list(args: ListArgs = {}): Promise<ProductsResponse> {\n const raw: unknown = await this.#transport.get(\"v1/products\", {\n searchParams: buildSearchParams(args),\n });\n return parseResponse({ schema: ProductsResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** Retrieve a single product by ID. */\n async retrieve(id: string): Promise<Product> {\n const raw: unknown = await this.#transport.get(`v1/products/${id}`);\n return parseResponse({ schema: ProductResponseSchema, data: raw, validate: this.#validate });\n }\n\n /** Iterate over all products, automatically paginating. Default limit per page: 500. */\n async listAll(args: Omit<ListArgs, \"nextToken\"> = {}): Promise<Product[]> {\n return paginate((listArgs) => this.list({ ...args, ...listArgs }), {\n limit: args.limit ?? 500,\n });\n }\n}\n"],"mappings":";;;;;AASA,IAAa,mBAAb,MAA8B;CAC5B;CACA;CAEA,YAAY,EACV,WACA,qBAIC;AACD,QAAA,YAAkB;AAClB,QAAA,WAAiB;;;CAInB,MAAM,OAAO,MAA8C;AAEzD,SAAO,cAAc;GAAE,QAAQ;GAAuB,MAAM,MADjC,MAAA,UAAgB,KAAK,eAAe,KAAK;GACH,UAAU,MAAA;GAAgB,CAAC;;;CAI9F,MAAM,KAAK,OAAiB,EAAE,EAA6B;AAIzD,SAAO,cAAc;GAAE,QAAQ;GAAwB,MAAM,MAHlC,MAAA,UAAgB,IAAI,eAAe,EAC5D,cAAc,kBAAkB,KAAK,EACtC,CAAC;GACgE,UAAU,MAAA;GAAgB,CAAC;;;CAI/F,MAAM,SAAS,IAA8B;AAE3C,SAAO,cAAc;GAAE,QAAQ;GAAuB,MAAM,MADjC,MAAA,UAAgB,IAAI,eAAe,KAAK;GACF,UAAU,MAAA;GAAgB,CAAC;;;CAI9F,MAAM,QAAQ,OAAoC,EAAE,EAAsB;AACxE,SAAO,UAAU,aAAa,KAAK,KAAK;GAAE,GAAG;GAAM,GAAG;GAAU,CAAC,EAAE,EACjE,OAAO,KAAK,SAAS,KACtB,CAAC"}
@@ -17,6 +17,12 @@ interface ProductsResponse {
17
17
  nextToken?: string;
18
18
  }
19
19
  declare const ProductsResponseSchema: z.ZodType<ProductsResponse>;
20
+ interface ProductCreateRequest {
21
+ imageUrls?: string[];
22
+ name: string;
23
+ status?: "active" | "archived";
24
+ }
25
+ declare const ProductCreateRequestSchema: z.ZodType<ProductCreateRequest>;
20
26
  //#endregion
21
- export { Product, ProductResponse, ProductResponseSchema, ProductSchema, ProductsResponse, ProductsResponseSchema };
27
+ export { Product, ProductCreateRequest, ProductCreateRequestSchema, ProductResponse, ProductResponseSchema, ProductSchema, ProductsResponse, ProductsResponseSchema };
22
28
  //# sourceMappingURL=schema.d.mts.map
@@ -13,7 +13,12 @@ const ProductsResponseSchema = z.object({
13
13
  data: z.array(ProductSchema).nullable(),
14
14
  nextToken: z.string().optional()
15
15
  });
16
+ const ProductCreateRequestSchema = z.object({
17
+ imageUrls: z.array(z.string()).optional(),
18
+ name: z.string(),
19
+ status: z.enum(["active", "archived"]).optional()
20
+ });
16
21
  //#endregion
17
- export { ProductResponseSchema, ProductSchema, ProductsResponseSchema };
22
+ export { ProductCreateRequestSchema, ProductResponseSchema, ProductSchema, ProductsResponseSchema };
18
23
 
19
24
  //# sourceMappingURL=schema.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/products/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Base types\n// ---------------------------------------------------------------------------\n\nexport interface Product {\n createdAt: string;\n description?: string;\n id: string;\n name?: string;\n object: \"product\";\n updatedAt?: string;\n}\n\nexport const ProductSchema: z.ZodType<Product> = z.object({\n createdAt: z.iso.datetime(),\n description: z.string().optional(),\n id: z.string(),\n name: z.string().optional(),\n object: z.literal(\"product\"),\n updatedAt: z.iso.datetime().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Response types\n// ---------------------------------------------------------------------------\n\nexport const ProductResponseSchema: z.ZodType<Product> = ProductSchema;\nexport type ProductResponse = Product;\n\nexport interface ProductsResponse {\n data: Product[] | null;\n nextToken?: string;\n}\n\nexport const ProductsResponseSchema: z.ZodType<ProductsResponse> = z.object({\n data: z.array(ProductSchema).nullable(),\n nextToken: z.string().optional(),\n});\n"],"mappings":";;AAeA,MAAa,gBAAoC,EAAE,OAAO;CACxD,WAAW,EAAE,IAAI,UAAU;CAC3B,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,QAAQ,EAAE,QAAQ,UAAU;CAC5B,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CACvC,CAAC;AAMF,MAAa,wBAA4C;AAQzD,MAAa,yBAAsD,EAAE,OAAO;CAC1E,MAAM,EAAE,MAAM,cAAc,CAAC,UAAU;CACvC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC"}
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../../../src/lib/modules/products/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\n// ---------------------------------------------------------------------------\n// Base types\n// ---------------------------------------------------------------------------\n\nexport interface Product {\n createdAt: string;\n description?: string;\n id: string;\n name?: string;\n object: \"product\";\n updatedAt?: string;\n}\n\nexport const ProductSchema: z.ZodType<Product> = z.object({\n createdAt: z.iso.datetime(),\n description: z.string().optional(),\n id: z.string(),\n name: z.string().optional(),\n object: z.literal(\"product\"),\n updatedAt: z.iso.datetime().optional(),\n});\n\n// ---------------------------------------------------------------------------\n// Response types\n// ---------------------------------------------------------------------------\n\nexport const ProductResponseSchema: z.ZodType<Product> = ProductSchema;\nexport type ProductResponse = Product;\n\nexport interface ProductsResponse {\n data: Product[] | null;\n nextToken?: string;\n}\n\nexport const ProductsResponseSchema: z.ZodType<ProductsResponse> = z.object({\n data: z.array(ProductSchema).nullable(),\n nextToken: z.string().optional(),\n});\n\n// ─── Requests ─────────────────────────────────────────────────────────────────\n\nexport interface ProductCreateRequest {\n imageUrls?: string[];\n name: string;\n status?: \"active\" | \"archived\";\n}\n\nexport const ProductCreateRequestSchema: z.ZodType<ProductCreateRequest> = z.object({\n imageUrls: z.array(z.string()).optional(),\n name: z.string(),\n status: z.enum([\"active\", \"archived\"]).optional(),\n});\n"],"mappings":";;AAeA,MAAa,gBAAoC,EAAE,OAAO;CACxD,WAAW,EAAE,IAAI,UAAU;CAC3B,aAAa,EAAE,QAAQ,CAAC,UAAU;CAClC,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,QAAQ,EAAE,QAAQ,UAAU;CAC5B,WAAW,EAAE,IAAI,UAAU,CAAC,UAAU;CACvC,CAAC;AAMF,MAAa,wBAA4C;AAQzD,MAAa,yBAAsD,EAAE,OAAO;CAC1E,MAAM,EAAE,MAAM,cAAc,CAAC,UAAU;CACvC,WAAW,EAAE,QAAQ,CAAC,UAAU;CACjC,CAAC;AAUF,MAAa,6BAA8D,EAAE,OAAO;CAClF,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACzC,MAAM,EAAE,QAAQ;CAChB,QAAQ,EAAE,KAAK,CAAC,UAAU,WAAW,CAAC,CAAC,UAAU;CAClD,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Transport } from "../../../transport/http.mjs";
2
+ import { ListArgs } from "../../pagination/paginate.mjs";
3
+ import { Refund, RefundCreateRequest, RefundsResponse } from "./schema.mjs";
4
+
5
+ //#region src/lib/modules/refunds/resource.d.ts
6
+ interface ListRefundsArgs extends ListArgs {
7
+ invoiceId: string;
8
+ }
9
+ declare class RefundsResource {
10
+ #private;
11
+ constructor({
12
+ transport,
13
+ validateResponses
14
+ }: {
15
+ transport: Transport;
16
+ validateResponses: boolean;
17
+ });
18
+ /** Issue a refund against a paid invoice. */
19
+ create(body: RefundCreateRequest): Promise<Refund>;
20
+ /** List the refunds issued against an invoice. */
21
+ list(args: ListRefundsArgs): Promise<RefundsResponse>;
22
+ /** Iterate over all refunds for an invoice, automatically paginating. Default limit per page: 500. */
23
+ listAll(args: Omit<ListRefundsArgs, "nextToken">): Promise<Refund[]>;
24
+ }
25
+ //#endregion
26
+ export { RefundsResource };
27
+ //# sourceMappingURL=resource.d.mts.map