@stackframe/stack-shared 2.8.52 → 2.8.54

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 (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/config/schema.d.mts +189 -189
  3. package/dist/config/schema.d.ts +189 -189
  4. package/dist/config/schema.js +2 -1
  5. package/dist/config/schema.js.map +1 -1
  6. package/dist/esm/config/schema.js +2 -1
  7. package/dist/esm/config/schema.js.map +1 -1
  8. package/dist/esm/helpers/emails.js +9 -7
  9. package/dist/esm/helpers/emails.js.map +1 -1
  10. package/dist/esm/interface/admin-interface.js +14 -0
  11. package/dist/esm/interface/admin-interface.js.map +1 -1
  12. package/dist/esm/interface/crud/projects.js +6 -2
  13. package/dist/esm/interface/crud/projects.js.map +1 -1
  14. package/dist/esm/interface/crud/transactions.js +107 -13
  15. package/dist/esm/interface/crud/transactions.js.map +1 -1
  16. package/dist/esm/known-errors.js +62 -0
  17. package/dist/esm/known-errors.js.map +1 -1
  18. package/dist/esm/schema-fields.js +22 -2
  19. package/dist/esm/schema-fields.js.map +1 -1
  20. package/dist/helpers/emails.d.mts +1 -1
  21. package/dist/helpers/emails.d.ts +1 -1
  22. package/dist/helpers/emails.js +9 -7
  23. package/dist/helpers/emails.js.map +1 -1
  24. package/dist/interface/admin-interface.d.mts +9 -3
  25. package/dist/interface/admin-interface.d.ts +9 -3
  26. package/dist/interface/admin-interface.js +14 -0
  27. package/dist/interface/admin-interface.js.map +1 -1
  28. package/dist/interface/crud/products.d.mts +2 -2
  29. package/dist/interface/crud/products.d.ts +2 -2
  30. package/dist/interface/crud/projects.d.mts +42 -14
  31. package/dist/interface/crud/projects.d.ts +42 -14
  32. package/dist/interface/crud/projects.js +6 -2
  33. package/dist/interface/crud/projects.js.map +1 -1
  34. package/dist/interface/crud/transactions.d.mts +160 -39
  35. package/dist/interface/crud/transactions.d.ts +160 -39
  36. package/dist/interface/crud/transactions.js +99 -13
  37. package/dist/interface/crud/transactions.js.map +1 -1
  38. package/dist/known-errors.d.mts +15 -0
  39. package/dist/known-errors.d.ts +15 -0
  40. package/dist/known-errors.js +62 -0
  41. package/dist/known-errors.js.map +1 -1
  42. package/dist/schema-fields.d.mts +6 -3
  43. package/dist/schema-fields.d.ts +6 -3
  44. package/dist/schema-fields.js +26 -3
  45. package/dist/schema-fields.js.map +1 -1
  46. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interface/crud/projects.ts"],"sourcesContent":["import { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as schemaFields from \"../../schema-fields\";\nimport { yupArray, yupObject, yupString } from \"../../schema-fields\";\n\nconst teamPermissionSchema = yupObject({\n id: yupString().defined(),\n}).defined();\n\nconst oauthProviderReadSchema = yupObject({\n provider_config_id: schemaFields.yupString().defined(),\n id: schemaFields.oauthIdSchema.defined(),\n type: schemaFields.oauthTypeSchema.defined(),\n client_id: schemaFields.yupDefinedAndNonEmptyWhen(\n schemaFields.oauthClientIdSchema,\n { type: 'standard' },\n ),\n client_secret: schemaFields.yupDefinedAndNonEmptyWhen(\n schemaFields.oauthClientSecretSchema,\n { type: 'standard' },\n ),\n\n // extra params\n facebook_config_id: schemaFields.oauthFacebookConfigIdSchema.optional(),\n microsoft_tenant_id: schemaFields.oauthMicrosoftTenantIdSchema.optional(),\n});\n\nconst oauthProviderWriteSchema = oauthProviderReadSchema.omit(['provider_config_id']);\n\nconst enabledOAuthProviderSchema = yupObject({\n id: schemaFields.oauthIdSchema.defined(),\n});\n\nexport const emailConfigSchema = yupObject({\n type: schemaFields.emailTypeSchema.defined(),\n host: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailHostSchema, {\n type: 'standard',\n }),\n port: schemaFields.yupDefinedWhen(schemaFields.emailPortSchema, {\n type: 'standard',\n }),\n username: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailUsernameSchema, {\n type: 'standard',\n }),\n password: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailPasswordSchema, {\n type: 'standard',\n }),\n sender_name: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderNameSchema, {\n type: 'standard',\n }),\n sender_email: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderEmailSchema, {\n type: 'standard',\n }),\n});\n\nexport const emailConfigWithoutPasswordSchema = emailConfigSchema.pick(['type', 'host', 'port', 'username', 'sender_name', 'sender_email']);\n\nconst domainSchema = yupObject({\n domain: schemaFields.urlSchema.defined()\n .matches(/^https?:\\/\\//, 'URL must start with http:// or https://')\n .meta({ openapiField: { description: 'URL. Must start with http:// or https://', exampleValue: 'https://example.com' } }),\n handler_path: schemaFields.handlerPathSchema.defined(),\n});\n\nexport const projectsCrudAdminReadSchema = yupObject({\n id: schemaFields.projectIdSchema.defined(),\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n description: schemaFields.projectDescriptionSchema.nonNullable().defined(),\n logo_url: schemaFields.projectLogoUrlSchema.nullable().optional(),\n full_logo_url: schemaFields.projectFullLogoUrlSchema.nullable().optional(),\n created_at_millis: schemaFields.projectCreatedAtMillisSchema.defined(),\n is_production_mode: schemaFields.projectIsProductionModeSchema.defined(),\n owner_team_id: schemaFields.yupString().nullable().defined(),\n /** @deprecated */\n config: yupObject({\n allow_localhost: schemaFields.projectAllowLocalhostSchema.defined(),\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),\n // TODO: remove this\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),\n allow_user_api_keys: schemaFields.yupBoolean().defined(),\n allow_team_api_keys: schemaFields.yupBoolean().defined(),\n oauth_providers: yupArray(oauthProviderReadSchema.defined()).defined(),\n enabled_oauth_providers: yupArray(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),\n domains: yupArray(domainSchema.defined()).defined(),\n email_config: emailConfigSchema.defined(),\n email_theme: schemaFields.emailThemeSchema.defined(),\n create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.defined(),\n team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n team_member_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n user_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.defined(),\n }).defined().meta({ openapiField: { hidden: true } }),\n}).defined();\n\nexport const projectsCrudClientReadSchema = yupObject({\n id: schemaFields.projectIdSchema.defined(),\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n config: yupObject({\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),\n allow_user_api_keys: schemaFields.yupBoolean().defined(),\n allow_team_api_keys: schemaFields.yupBoolean().defined(),\n enabled_oauth_providers: yupArray(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),\n domains: yupArray(domainSchema.defined()).defined(),\n }).defined().meta({ openapiField: { hidden: true } }),\n}).defined();\n\n\nexport const projectsCrudAdminUpdateSchema = yupObject({\n display_name: schemaFields.projectDisplayNameSchema.optional(),\n description: schemaFields.projectDescriptionSchema.optional(),\n logo_url: schemaFields.projectLogoUrlSchema.nullable().optional(),\n full_logo_url: schemaFields.projectFullLogoUrlSchema.nullable().optional(),\n is_production_mode: schemaFields.projectIsProductionModeSchema.optional(),\n config: yupObject({\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.optional(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.optional(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.optional(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.optional(),\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.optional(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.optional(),\n allow_localhost: schemaFields.projectAllowLocalhostSchema.optional(),\n allow_user_api_keys: schemaFields.yupBoolean().optional(),\n allow_team_api_keys: schemaFields.yupBoolean().optional(),\n email_config: emailConfigSchema.optional().default(undefined),\n email_theme: schemaFields.emailThemeSchema.optional(),\n domains: yupArray(domainSchema.defined()).optional().default(undefined),\n oauth_providers: yupArray(oauthProviderWriteSchema.defined()).optional().default(undefined),\n create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.optional(),\n team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n team_member_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n user_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.optional(),\n }).optional().default(undefined),\n}).defined();\n\nexport const projectsCrudAdminCreateSchema = projectsCrudAdminUpdateSchema.concat(yupObject({\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n owner_team_id: schemaFields.yupString().uuid().defined(),\n}).defined());\n\nexport const projectsCrudAdminDeleteSchema = schemaFields.yupMixed();\n\nexport const clientProjectsCrud = createCrud({\n clientReadSchema: projectsCrudClientReadSchema,\n docs: {\n clientRead: {\n summary: 'Get the current project',\n description: 'Get the current project information including display name, OAuth providers and authentication methods. Useful for displaying the available login options to the user.',\n tags: ['Projects'],\n },\n },\n});\nexport type ClientProjectsCrud = CrudTypeOf<typeof clientProjectsCrud>;\n\nexport const projectsCrud = createCrud({\n adminReadSchema: projectsCrudAdminReadSchema,\n adminUpdateSchema: projectsCrudAdminUpdateSchema,\n adminDeleteSchema: projectsCrudAdminDeleteSchema,\n docs: {\n adminRead: {\n summary: 'Get the current project',\n description: 'Get the current project information and configuration including display name, OAuth providers, email configuration, etc.',\n tags: ['Projects'],\n },\n adminUpdate: {\n summary: 'Update the current project',\n description: 'Update the current project information and configuration including display name, OAuth providers, email configuration, etc.',\n tags: ['Projects'],\n },\n adminDelete: {\n summary: 'Delete the current project',\n description: 'Delete the current project and all associated data (including users, teams, API keys, project configs, etc.). Be careful, this action is irreversible.',\n tags: ['Projects'],\n },\n },\n});\nexport type ProjectsCrud = CrudTypeOf<typeof projectsCrud>;\n\nexport const adminUserProjectsCrud = createCrud({\n clientReadSchema: projectsCrudAdminReadSchema,\n clientCreateSchema: projectsCrudAdminCreateSchema,\n docs: {\n clientList: {\n hidden: true,\n },\n clientCreate: {\n hidden: true,\n },\n },\n});\nexport type AdminUserProjectsCrud = CrudTypeOf<typeof adminUserProjectsCrud>;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/interface/crud/projects.ts"],"sourcesContent":["import { CrudTypeOf, createCrud } from \"../../crud\";\nimport * as schemaFields from \"../../schema-fields\";\nimport { yupArray, yupObject, yupString } from \"../../schema-fields\";\n\nconst teamPermissionSchema = yupObject({\n id: yupString().defined(),\n}).defined();\n\nconst oauthProviderReadSchema = yupObject({\n provider_config_id: schemaFields.yupString().defined(),\n id: schemaFields.oauthIdSchema.defined(),\n type: schemaFields.oauthTypeSchema.defined(),\n client_id: schemaFields.yupDefinedAndNonEmptyWhen(\n schemaFields.oauthClientIdSchema,\n { type: 'standard' },\n ),\n client_secret: schemaFields.yupDefinedAndNonEmptyWhen(\n schemaFields.oauthClientSecretSchema,\n { type: 'standard' },\n ),\n\n // extra params\n facebook_config_id: schemaFields.oauthFacebookConfigIdSchema.optional(),\n microsoft_tenant_id: schemaFields.oauthMicrosoftTenantIdSchema.optional(),\n});\n\nconst oauthProviderWriteSchema = oauthProviderReadSchema.omit(['provider_config_id']);\n\nconst enabledOAuthProviderSchema = yupObject({\n id: schemaFields.oauthIdSchema.defined(),\n});\n\nexport const emailConfigSchema = yupObject({\n type: schemaFields.emailTypeSchema.defined(),\n host: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailHostSchema, {\n type: 'standard',\n }),\n port: schemaFields.yupDefinedWhen(schemaFields.emailPortSchema, {\n type: 'standard',\n }),\n username: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailUsernameSchema, {\n type: 'standard',\n }),\n password: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailPasswordSchema, {\n type: 'standard',\n }),\n sender_name: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderNameSchema, {\n type: 'standard',\n }),\n sender_email: schemaFields.yupDefinedAndNonEmptyWhen(schemaFields.emailSenderEmailSchema, {\n type: 'standard',\n }),\n});\n\nexport const emailConfigWithoutPasswordSchema = emailConfigSchema.pick(['type', 'host', 'port', 'username', 'sender_name', 'sender_email']);\n\nconst domainSchema = yupObject({\n domain: schemaFields.urlSchema.defined()\n .matches(/^https?:\\/\\//, 'URL must start with http:// or https://')\n .meta({ openapiField: { description: 'URL. Must start with http:// or https://', exampleValue: 'https://example.com' } }),\n handler_path: schemaFields.handlerPathSchema.defined(),\n});\n\nexport const projectsCrudAdminReadSchema = yupObject({\n id: schemaFields.projectIdSchema.defined(),\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n description: schemaFields.projectDescriptionSchema.nonNullable().defined(),\n logo_url: schemaFields.projectLogoUrlSchema.nullable().optional(),\n logo_full_url: schemaFields.projectLogoFullUrlSchema.nullable().optional(),\n logo_dark_mode_url: schemaFields.projectLogoDarkModeUrlSchema.nullable().optional(),\n logo_full_dark_mode_url: schemaFields.projectLogoFullDarkModeUrlSchema.nullable().optional(),\n created_at_millis: schemaFields.projectCreatedAtMillisSchema.defined(),\n is_production_mode: schemaFields.projectIsProductionModeSchema.defined(),\n owner_team_id: schemaFields.yupString().nullable().defined(),\n /** @deprecated */\n config: yupObject({\n allow_localhost: schemaFields.projectAllowLocalhostSchema.defined(),\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),\n // TODO: remove this\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),\n allow_user_api_keys: schemaFields.yupBoolean().defined(),\n allow_team_api_keys: schemaFields.yupBoolean().defined(),\n oauth_providers: yupArray(oauthProviderReadSchema.defined()).defined(),\n enabled_oauth_providers: yupArray(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),\n domains: yupArray(domainSchema.defined()).defined(),\n email_config: emailConfigSchema.defined(),\n email_theme: schemaFields.emailThemeSchema.defined(),\n create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.defined(),\n team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n team_member_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n user_default_permissions: yupArray(teamPermissionSchema.defined()).defined(),\n oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.defined(),\n }).defined().meta({ openapiField: { hidden: true } }),\n}).defined();\n\nexport const projectsCrudClientReadSchema = yupObject({\n id: schemaFields.projectIdSchema.defined(),\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n config: yupObject({\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.defined(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.defined(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.defined(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.defined(),\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.defined(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.defined(),\n allow_user_api_keys: schemaFields.yupBoolean().defined(),\n allow_team_api_keys: schemaFields.yupBoolean().defined(),\n enabled_oauth_providers: yupArray(enabledOAuthProviderSchema.defined()).defined().meta({ openapiField: { hidden: true } }),\n domains: yupArray(domainSchema.defined()).defined(),\n }).defined().meta({ openapiField: { hidden: true } }),\n}).defined();\n\n\nexport const projectsCrudAdminUpdateSchema = yupObject({\n display_name: schemaFields.projectDisplayNameSchema.optional(),\n description: schemaFields.projectDescriptionSchema.optional(),\n logo_url: schemaFields.projectLogoUrlSchema.nullable().optional(),\n logo_full_url: schemaFields.projectLogoFullUrlSchema.nullable().optional(),\n logo_dark_mode_url: schemaFields.projectLogoDarkModeUrlSchema.nullable().optional(),\n logo_full_dark_mode_url: schemaFields.projectLogoFullDarkModeUrlSchema.nullable().optional(),\n is_production_mode: schemaFields.projectIsProductionModeSchema.optional(),\n config: yupObject({\n sign_up_enabled: schemaFields.projectSignUpEnabledSchema.optional(),\n credential_enabled: schemaFields.projectCredentialEnabledSchema.optional(),\n magic_link_enabled: schemaFields.projectMagicLinkEnabledSchema.optional(),\n passkey_enabled: schemaFields.projectPasskeyEnabledSchema.optional(),\n client_team_creation_enabled: schemaFields.projectClientTeamCreationEnabledSchema.optional(),\n client_user_deletion_enabled: schemaFields.projectClientUserDeletionEnabledSchema.optional(),\n allow_localhost: schemaFields.projectAllowLocalhostSchema.optional(),\n allow_user_api_keys: schemaFields.yupBoolean().optional(),\n allow_team_api_keys: schemaFields.yupBoolean().optional(),\n email_config: emailConfigSchema.optional().default(undefined),\n email_theme: schemaFields.emailThemeSchema.optional(),\n domains: yupArray(domainSchema.defined()).optional().default(undefined),\n oauth_providers: yupArray(oauthProviderWriteSchema.defined()).optional().default(undefined),\n create_team_on_sign_up: schemaFields.projectCreateTeamOnSignUpSchema.optional(),\n team_creator_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n team_member_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n user_default_permissions: yupArray(teamPermissionSchema.defined()).optional(),\n oauth_account_merge_strategy: schemaFields.oauthAccountMergeStrategySchema.optional(),\n }).optional().default(undefined),\n}).defined();\n\nexport const projectsCrudAdminCreateSchema = projectsCrudAdminUpdateSchema.concat(yupObject({\n display_name: schemaFields.projectDisplayNameSchema.defined(),\n owner_team_id: schemaFields.yupString().uuid().defined(),\n}).defined());\n\nexport const projectsCrudAdminDeleteSchema = schemaFields.yupMixed();\n\nexport const clientProjectsCrud = createCrud({\n clientReadSchema: projectsCrudClientReadSchema,\n docs: {\n clientRead: {\n summary: 'Get the current project',\n description: 'Get the current project information including display name, OAuth providers and authentication methods. Useful for displaying the available login options to the user.',\n tags: ['Projects'],\n },\n },\n});\nexport type ClientProjectsCrud = CrudTypeOf<typeof clientProjectsCrud>;\n\nexport const projectsCrud = createCrud({\n adminReadSchema: projectsCrudAdminReadSchema,\n adminUpdateSchema: projectsCrudAdminUpdateSchema,\n adminDeleteSchema: projectsCrudAdminDeleteSchema,\n docs: {\n adminRead: {\n summary: 'Get the current project',\n description: 'Get the current project information and configuration including display name, OAuth providers, email configuration, etc.',\n tags: ['Projects'],\n },\n adminUpdate: {\n summary: 'Update the current project',\n description: 'Update the current project information and configuration including display name, OAuth providers, email configuration, etc.',\n tags: ['Projects'],\n },\n adminDelete: {\n summary: 'Delete the current project',\n description: 'Delete the current project and all associated data (including users, teams, API keys, project configs, etc.). Be careful, this action is irreversible.',\n tags: ['Projects'],\n },\n },\n});\nexport type ProjectsCrud = CrudTypeOf<typeof projectsCrud>;\n\nexport const adminUserProjectsCrud = createCrud({\n clientReadSchema: projectsCrudAdminReadSchema,\n clientCreateSchema: projectsCrudAdminCreateSchema,\n docs: {\n clientList: {\n hidden: true,\n },\n clientCreate: {\n hidden: true,\n },\n },\n});\nexport type AdminUserProjectsCrud = CrudTypeOf<typeof adminUserProjectsCrud>;\n"],"mappings":"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","names":[]}
@@ -2,16 +2,9 @@ import * as yup from 'yup';
2
2
  import { InferType } from 'yup';
3
3
  import { DayInterval } from '../../utils/dates.mjs';
4
4
 
5
- declare const adminTransaction: yup.ObjectSchema<{
6
- id: string;
7
- type: "subscription" | "one_time" | "item_quantity_change";
8
- created_at_millis: number;
9
- customer_type: "user" | "team" | "custom";
10
- customer_id: string;
11
- quantity: number;
12
- test_mode: boolean;
13
- product_display_name: string | null;
14
- price: {
5
+ declare const transactionEntrySchema: yup.MixedSchema<{
6
+ type: "money_transfer";
7
+ charged_amount: {
15
8
  USD?: string | undefined;
16
9
  EUR?: string | undefined;
17
10
  GBP?: string | undefined;
@@ -19,38 +12,166 @@ declare const adminTransaction: yup.ObjectSchema<{
19
12
  INR?: string | undefined;
20
13
  AUD?: string | undefined;
21
14
  CAD?: string | undefined;
22
- interval?: DayInterval | undefined;
23
- } | null;
24
- status: string | null;
25
- item_id: string | undefined;
26
- description: string | null | undefined;
27
- expires_at_millis: number | null | undefined;
15
+ };
16
+ net_amount: {
17
+ USD: string;
18
+ };
19
+ adjusted_transaction_id: string | null;
20
+ adjusted_entry_index: number | null;
21
+ customer_type: "user" | "team" | "custom";
22
+ customer_id: string;
23
+ } | {
24
+ type: "item_quantity_change";
25
+ adjusted_transaction_id: string | null;
26
+ adjusted_entry_index: number | null;
27
+ customer_type: "user" | "team" | "custom";
28
+ customer_id: string;
29
+ item_id: string;
30
+ quantity: number;
31
+ } | {
32
+ subscription_id?: string | undefined;
33
+ one_time_purchase_id?: string | undefined;
34
+ type: "product_grant";
35
+ adjusted_transaction_id: string | null;
36
+ adjusted_entry_index: number | null;
37
+ customer_type: "user" | "team" | "custom";
38
+ customer_id: string;
39
+ quantity: number;
40
+ product_id: string | null;
41
+ product: {
42
+ client_metadata?: {} | null | undefined;
43
+ client_read_only_metadata?: {} | null | undefined;
44
+ server_metadata?: {} | null | undefined;
45
+ free_trial?: DayInterval | undefined;
46
+ display_name: string;
47
+ customer_type: "user" | "team" | "custom";
48
+ server_only: boolean;
49
+ stackable: boolean;
50
+ prices: Record<string, {
51
+ USD?: string | undefined;
52
+ EUR?: string | undefined;
53
+ GBP?: string | undefined;
54
+ JPY?: string | undefined;
55
+ INR?: string | undefined;
56
+ AUD?: string | undefined;
57
+ CAD?: string | undefined;
58
+ free_trial?: DayInterval | undefined;
59
+ interval?: DayInterval | undefined;
60
+ }>;
61
+ included_items: Record<string, {
62
+ repeat?: "never" | DayInterval | undefined;
63
+ quantity?: number | undefined;
64
+ expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
65
+ }>;
66
+ };
67
+ price_id: string | null;
68
+ } | {
69
+ type: "product_revocation";
70
+ adjusted_transaction_id: string;
71
+ adjusted_entry_index: number;
72
+ quantity: number;
73
+ } | {
74
+ type: "product_revocation_reversal";
75
+ adjusted_transaction_id: string;
76
+ adjusted_entry_index: number;
77
+ quantity: number;
78
+ }, yup.AnyObject, undefined, "">;
79
+ type TransactionEntry = InferType<typeof transactionEntrySchema>;
80
+ declare const TRANSACTION_TYPES: readonly ["purchase", "subscription-cancellation", "subscription-renewal", "manual-item-quantity-change", "chargeback", "product-change"];
81
+ type TransactionType = (typeof TRANSACTION_TYPES)[number];
82
+ declare const transactionSchema: yup.ObjectSchema<{
83
+ id: string;
84
+ created_at_millis: number;
85
+ effective_at_millis: number;
86
+ type: "purchase" | "subscription-cancellation" | "subscription-renewal" | "manual-item-quantity-change" | "chargeback" | "product-change" | null;
87
+ entries: ({
88
+ type: "money_transfer";
89
+ charged_amount: {
90
+ USD?: string | undefined;
91
+ EUR?: string | undefined;
92
+ GBP?: string | undefined;
93
+ JPY?: string | undefined;
94
+ INR?: string | undefined;
95
+ AUD?: string | undefined;
96
+ CAD?: string | undefined;
97
+ };
98
+ net_amount: {
99
+ USD: string;
100
+ };
101
+ adjusted_transaction_id: string | null;
102
+ adjusted_entry_index: number | null;
103
+ customer_type: "user" | "team" | "custom";
104
+ customer_id: string;
105
+ } | {
106
+ type: "item_quantity_change";
107
+ adjusted_transaction_id: string | null;
108
+ adjusted_entry_index: number | null;
109
+ customer_type: "user" | "team" | "custom";
110
+ customer_id: string;
111
+ item_id: string;
112
+ quantity: number;
113
+ } | {
114
+ subscription_id?: string | undefined;
115
+ one_time_purchase_id?: string | undefined;
116
+ type: "product_grant";
117
+ adjusted_transaction_id: string | null;
118
+ adjusted_entry_index: number | null;
119
+ customer_type: "user" | "team" | "custom";
120
+ customer_id: string;
121
+ quantity: number;
122
+ product_id: string | null;
123
+ product: {
124
+ client_metadata?: {} | null | undefined;
125
+ client_read_only_metadata?: {} | null | undefined;
126
+ server_metadata?: {} | null | undefined;
127
+ free_trial?: DayInterval | undefined;
128
+ display_name: string;
129
+ customer_type: "user" | "team" | "custom";
130
+ server_only: boolean;
131
+ stackable: boolean;
132
+ prices: Record<string, {
133
+ USD?: string | undefined;
134
+ EUR?: string | undefined;
135
+ GBP?: string | undefined;
136
+ JPY?: string | undefined;
137
+ INR?: string | undefined;
138
+ AUD?: string | undefined;
139
+ CAD?: string | undefined;
140
+ free_trial?: DayInterval | undefined;
141
+ interval?: DayInterval | undefined;
142
+ }>;
143
+ included_items: Record<string, {
144
+ repeat?: "never" | DayInterval | undefined;
145
+ quantity?: number | undefined;
146
+ expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
147
+ }>;
148
+ };
149
+ price_id: string | null;
150
+ } | {
151
+ type: "product_revocation";
152
+ adjusted_transaction_id: string;
153
+ adjusted_entry_index: number;
154
+ quantity: number;
155
+ } | {
156
+ type: "product_revocation_reversal";
157
+ adjusted_transaction_id: string;
158
+ adjusted_entry_index: number;
159
+ quantity: number;
160
+ })[];
161
+ adjusted_by: {
162
+ transaction_id: string;
163
+ entry_index: number;
164
+ }[];
165
+ test_mode: boolean;
28
166
  }, yup.AnyObject, {
29
167
  id: undefined;
30
- type: undefined;
31
168
  created_at_millis: undefined;
32
- customer_type: undefined;
33
- customer_id: undefined;
34
- quantity: undefined;
169
+ effective_at_millis: undefined;
170
+ type: undefined;
171
+ entries: undefined;
172
+ adjusted_by: undefined;
35
173
  test_mode: undefined;
36
- product_display_name: undefined;
37
- price: {
38
- interval: undefined;
39
- serverOnly: undefined;
40
- freeTrial: undefined;
41
- USD: undefined;
42
- EUR: undefined;
43
- GBP: undefined;
44
- JPY: undefined;
45
- INR: undefined;
46
- AUD: undefined;
47
- CAD: undefined;
48
- };
49
- status: undefined;
50
- item_id: undefined;
51
- description: undefined;
52
- expires_at_millis: undefined;
53
174
  }, "">;
54
- type AdminTransaction = InferType<typeof adminTransaction>;
175
+ type Transaction = InferType<typeof transactionSchema>;
55
176
 
56
- export { type AdminTransaction, adminTransaction };
177
+ export { TRANSACTION_TYPES, type Transaction, type TransactionEntry, type TransactionType, transactionEntrySchema, transactionSchema };
@@ -2,16 +2,9 @@ import * as yup from 'yup';
2
2
  import { InferType } from 'yup';
3
3
  import { DayInterval } from '../../utils/dates.js';
4
4
 
5
- declare const adminTransaction: yup.ObjectSchema<{
6
- id: string;
7
- type: "subscription" | "one_time" | "item_quantity_change";
8
- created_at_millis: number;
9
- customer_type: "user" | "team" | "custom";
10
- customer_id: string;
11
- quantity: number;
12
- test_mode: boolean;
13
- product_display_name: string | null;
14
- price: {
5
+ declare const transactionEntrySchema: yup.MixedSchema<{
6
+ type: "money_transfer";
7
+ charged_amount: {
15
8
  USD?: string | undefined;
16
9
  EUR?: string | undefined;
17
10
  GBP?: string | undefined;
@@ -19,38 +12,166 @@ declare const adminTransaction: yup.ObjectSchema<{
19
12
  INR?: string | undefined;
20
13
  AUD?: string | undefined;
21
14
  CAD?: string | undefined;
22
- interval?: DayInterval | undefined;
23
- } | null;
24
- status: string | null;
25
- item_id: string | undefined;
26
- description: string | null | undefined;
27
- expires_at_millis: number | null | undefined;
15
+ };
16
+ net_amount: {
17
+ USD: string;
18
+ };
19
+ adjusted_transaction_id: string | null;
20
+ adjusted_entry_index: number | null;
21
+ customer_type: "user" | "team" | "custom";
22
+ customer_id: string;
23
+ } | {
24
+ type: "item_quantity_change";
25
+ adjusted_transaction_id: string | null;
26
+ adjusted_entry_index: number | null;
27
+ customer_type: "user" | "team" | "custom";
28
+ customer_id: string;
29
+ item_id: string;
30
+ quantity: number;
31
+ } | {
32
+ subscription_id?: string | undefined;
33
+ one_time_purchase_id?: string | undefined;
34
+ type: "product_grant";
35
+ adjusted_transaction_id: string | null;
36
+ adjusted_entry_index: number | null;
37
+ customer_type: "user" | "team" | "custom";
38
+ customer_id: string;
39
+ quantity: number;
40
+ product_id: string | null;
41
+ product: {
42
+ client_metadata?: {} | null | undefined;
43
+ client_read_only_metadata?: {} | null | undefined;
44
+ server_metadata?: {} | null | undefined;
45
+ free_trial?: DayInterval | undefined;
46
+ display_name: string;
47
+ customer_type: "user" | "team" | "custom";
48
+ server_only: boolean;
49
+ stackable: boolean;
50
+ prices: Record<string, {
51
+ USD?: string | undefined;
52
+ EUR?: string | undefined;
53
+ GBP?: string | undefined;
54
+ JPY?: string | undefined;
55
+ INR?: string | undefined;
56
+ AUD?: string | undefined;
57
+ CAD?: string | undefined;
58
+ free_trial?: DayInterval | undefined;
59
+ interval?: DayInterval | undefined;
60
+ }>;
61
+ included_items: Record<string, {
62
+ repeat?: "never" | DayInterval | undefined;
63
+ quantity?: number | undefined;
64
+ expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
65
+ }>;
66
+ };
67
+ price_id: string | null;
68
+ } | {
69
+ type: "product_revocation";
70
+ adjusted_transaction_id: string;
71
+ adjusted_entry_index: number;
72
+ quantity: number;
73
+ } | {
74
+ type: "product_revocation_reversal";
75
+ adjusted_transaction_id: string;
76
+ adjusted_entry_index: number;
77
+ quantity: number;
78
+ }, yup.AnyObject, undefined, "">;
79
+ type TransactionEntry = InferType<typeof transactionEntrySchema>;
80
+ declare const TRANSACTION_TYPES: readonly ["purchase", "subscription-cancellation", "subscription-renewal", "manual-item-quantity-change", "chargeback", "product-change"];
81
+ type TransactionType = (typeof TRANSACTION_TYPES)[number];
82
+ declare const transactionSchema: yup.ObjectSchema<{
83
+ id: string;
84
+ created_at_millis: number;
85
+ effective_at_millis: number;
86
+ type: "purchase" | "subscription-cancellation" | "subscription-renewal" | "manual-item-quantity-change" | "chargeback" | "product-change" | null;
87
+ entries: ({
88
+ type: "money_transfer";
89
+ charged_amount: {
90
+ USD?: string | undefined;
91
+ EUR?: string | undefined;
92
+ GBP?: string | undefined;
93
+ JPY?: string | undefined;
94
+ INR?: string | undefined;
95
+ AUD?: string | undefined;
96
+ CAD?: string | undefined;
97
+ };
98
+ net_amount: {
99
+ USD: string;
100
+ };
101
+ adjusted_transaction_id: string | null;
102
+ adjusted_entry_index: number | null;
103
+ customer_type: "user" | "team" | "custom";
104
+ customer_id: string;
105
+ } | {
106
+ type: "item_quantity_change";
107
+ adjusted_transaction_id: string | null;
108
+ adjusted_entry_index: number | null;
109
+ customer_type: "user" | "team" | "custom";
110
+ customer_id: string;
111
+ item_id: string;
112
+ quantity: number;
113
+ } | {
114
+ subscription_id?: string | undefined;
115
+ one_time_purchase_id?: string | undefined;
116
+ type: "product_grant";
117
+ adjusted_transaction_id: string | null;
118
+ adjusted_entry_index: number | null;
119
+ customer_type: "user" | "team" | "custom";
120
+ customer_id: string;
121
+ quantity: number;
122
+ product_id: string | null;
123
+ product: {
124
+ client_metadata?: {} | null | undefined;
125
+ client_read_only_metadata?: {} | null | undefined;
126
+ server_metadata?: {} | null | undefined;
127
+ free_trial?: DayInterval | undefined;
128
+ display_name: string;
129
+ customer_type: "user" | "team" | "custom";
130
+ server_only: boolean;
131
+ stackable: boolean;
132
+ prices: Record<string, {
133
+ USD?: string | undefined;
134
+ EUR?: string | undefined;
135
+ GBP?: string | undefined;
136
+ JPY?: string | undefined;
137
+ INR?: string | undefined;
138
+ AUD?: string | undefined;
139
+ CAD?: string | undefined;
140
+ free_trial?: DayInterval | undefined;
141
+ interval?: DayInterval | undefined;
142
+ }>;
143
+ included_items: Record<string, {
144
+ repeat?: "never" | DayInterval | undefined;
145
+ quantity?: number | undefined;
146
+ expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
147
+ }>;
148
+ };
149
+ price_id: string | null;
150
+ } | {
151
+ type: "product_revocation";
152
+ adjusted_transaction_id: string;
153
+ adjusted_entry_index: number;
154
+ quantity: number;
155
+ } | {
156
+ type: "product_revocation_reversal";
157
+ adjusted_transaction_id: string;
158
+ adjusted_entry_index: number;
159
+ quantity: number;
160
+ })[];
161
+ adjusted_by: {
162
+ transaction_id: string;
163
+ entry_index: number;
164
+ }[];
165
+ test_mode: boolean;
28
166
  }, yup.AnyObject, {
29
167
  id: undefined;
30
- type: undefined;
31
168
  created_at_millis: undefined;
32
- customer_type: undefined;
33
- customer_id: undefined;
34
- quantity: undefined;
169
+ effective_at_millis: undefined;
170
+ type: undefined;
171
+ entries: undefined;
172
+ adjusted_by: undefined;
35
173
  test_mode: undefined;
36
- product_display_name: undefined;
37
- price: {
38
- interval: undefined;
39
- serverOnly: undefined;
40
- freeTrial: undefined;
41
- USD: undefined;
42
- EUR: undefined;
43
- GBP: undefined;
44
- JPY: undefined;
45
- INR: undefined;
46
- AUD: undefined;
47
- CAD: undefined;
48
- };
49
- status: undefined;
50
- item_id: undefined;
51
- description: undefined;
52
- expires_at_millis: undefined;
53
174
  }, "">;
54
- type AdminTransaction = InferType<typeof adminTransaction>;
175
+ type Transaction = InferType<typeof transactionSchema>;
55
176
 
56
- export { type AdminTransaction, adminTransaction };
177
+ export { TRANSACTION_TYPES, type Transaction, type TransactionEntry, type TransactionType, transactionEntrySchema, transactionSchema };
@@ -20,27 +20,113 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/interface/crud/transactions.ts
21
21
  var transactions_exports = {};
22
22
  __export(transactions_exports, {
23
- adminTransaction: () => adminTransaction
23
+ TRANSACTION_TYPES: () => TRANSACTION_TYPES,
24
+ transactionEntrySchema: () => transactionEntrySchema,
25
+ transactionSchema: () => transactionSchema
24
26
  });
25
27
  module.exports = __toCommonJS(transactions_exports);
26
28
  var import_schema_fields = require("../../schema-fields.js");
27
- var adminTransaction = (0, import_schema_fields.yupObject)({
28
- id: (0, import_schema_fields.yupString)().defined(),
29
- type: (0, import_schema_fields.yupString)().oneOf(["subscription", "one_time", "item_quantity_change"]).defined(),
30
- created_at_millis: (0, import_schema_fields.yupNumber)().defined(),
29
+ var import_currency_constants = require("../../utils/currency-constants.js");
30
+ var import_objects = require("../../utils/objects.js");
31
+ var import_errors = require("../../utils/errors.js");
32
+ var USD_CURRENCY = import_currency_constants.SUPPORTED_CURRENCIES.find((currency) => currency.code === "USD") ?? (0, import_errors.throwErr)("USD currency configuration missing in SUPPORTED_CURRENCIES");
33
+ var chargedAmountSchema = (0, import_schema_fields.yupObject)({
34
+ ...(0, import_objects.typedFromEntries)(import_currency_constants.SUPPORTED_CURRENCIES.map((currency) => [currency.code, (0, import_schema_fields.moneyAmountSchema)(currency).optional()]))
35
+ }).noUnknown(true).test("at-least-one-currency", "charged_amount must include at least one currency amount", (value) => {
36
+ return Object.values(value).some((amount) => typeof amount === "string");
37
+ }).defined();
38
+ var netAmountSchema = (0, import_schema_fields.yupObject)({
39
+ USD: (0, import_schema_fields.moneyAmountSchema)(USD_CURRENCY).defined()
40
+ }).noUnknown(true).defined();
41
+ var transactionEntryMoneyTransferSchema = (0, import_schema_fields.yupObject)({
42
+ type: (0, import_schema_fields.yupString)().oneOf(["money_transfer"]).defined(),
43
+ adjusted_transaction_id: (0, import_schema_fields.yupString)().nullable().defined(),
44
+ adjusted_entry_index: (0, import_schema_fields.yupNumber)().integer().min(0).nullable().defined(),
45
+ customer_type: import_schema_fields.customerTypeSchema.defined(),
46
+ customer_id: (0, import_schema_fields.yupString)().defined(),
47
+ charged_amount: chargedAmountSchema,
48
+ net_amount: netAmountSchema
49
+ }).defined();
50
+ var transactionEntryItemQuantityChangeSchema = (0, import_schema_fields.yupObject)({
51
+ type: (0, import_schema_fields.yupString)().oneOf(["item_quantity_change"]).defined(),
52
+ adjusted_transaction_id: (0, import_schema_fields.yupString)().nullable().defined(),
53
+ adjusted_entry_index: (0, import_schema_fields.yupNumber)().integer().min(0).nullable().defined(),
54
+ customer_type: import_schema_fields.customerTypeSchema.defined(),
55
+ customer_id: (0, import_schema_fields.yupString)().defined(),
56
+ item_id: (0, import_schema_fields.yupString)().defined(),
57
+ quantity: (0, import_schema_fields.yupNumber)().defined()
58
+ }).defined();
59
+ var transactionEntryProductGrantSchema = (0, import_schema_fields.yupObject)({
60
+ type: (0, import_schema_fields.yupString)().oneOf(["product_grant"]).defined(),
61
+ adjusted_transaction_id: (0, import_schema_fields.yupString)().nullable().defined(),
62
+ adjusted_entry_index: (0, import_schema_fields.yupNumber)().integer().min(0).nullable().defined(),
31
63
  customer_type: import_schema_fields.customerTypeSchema.defined(),
32
64
  customer_id: (0, import_schema_fields.yupString)().defined(),
65
+ product_id: (0, import_schema_fields.yupString)().nullable().defined(),
66
+ product: import_schema_fields.inlineProductSchema.defined(),
67
+ price_id: (0, import_schema_fields.yupString)().nullable().defined(),
33
68
  quantity: (0, import_schema_fields.yupNumber)().defined(),
34
- test_mode: (0, import_schema_fields.yupBoolean)().defined(),
35
- product_display_name: (0, import_schema_fields.yupString)().nullable().defined(),
36
- price: import_schema_fields.productPriceSchema.omit(["serverOnly", "freeTrial"]).nullable().defined(),
37
- status: (0, import_schema_fields.yupString)().nullable().defined(),
38
- item_id: (0, import_schema_fields.yupString)().optional(),
39
- description: (0, import_schema_fields.yupString)().nullable().optional(),
40
- expires_at_millis: (0, import_schema_fields.yupNumber)().nullable().optional()
69
+ subscription_id: (0, import_schema_fields.yupString)().optional(),
70
+ one_time_purchase_id: (0, import_schema_fields.yupString)().optional()
71
+ }).test(
72
+ "exclusive-reference",
73
+ "subscription_id and one_time_purchase_id cannot both be set",
74
+ (value, context) => {
75
+ if (value.subscription_id != null && value.one_time_purchase_id != null) {
76
+ return context.createError({
77
+ message: "subscription_id and one_time_purchase_id cannot both be set"
78
+ });
79
+ }
80
+ return true;
81
+ }
82
+ ).defined();
83
+ var transactionEntryProductRevocationSchema = (0, import_schema_fields.yupObject)({
84
+ type: (0, import_schema_fields.yupString)().oneOf(["product_revocation"]).defined(),
85
+ adjusted_transaction_id: (0, import_schema_fields.yupString)().defined(),
86
+ adjusted_entry_index: (0, import_schema_fields.yupNumber)().integer().min(0).defined(),
87
+ quantity: (0, import_schema_fields.yupNumber)().defined()
88
+ }).defined();
89
+ var transactionEntryProductRevocationReversalSchema = (0, import_schema_fields.yupObject)({
90
+ type: (0, import_schema_fields.yupString)().oneOf(["product_revocation_reversal"]).defined(),
91
+ adjusted_transaction_id: (0, import_schema_fields.yupString)().defined(),
92
+ adjusted_entry_index: (0, import_schema_fields.yupNumber)().integer().min(0).defined(),
93
+ quantity: (0, import_schema_fields.yupNumber)().defined()
94
+ }).defined();
95
+ var transactionEntrySchema = (0, import_schema_fields.yupUnion)(
96
+ transactionEntryMoneyTransferSchema,
97
+ transactionEntryItemQuantityChangeSchema,
98
+ transactionEntryProductGrantSchema,
99
+ transactionEntryProductRevocationSchema,
100
+ transactionEntryProductRevocationReversalSchema
101
+ ).defined();
102
+ var TRANSACTION_TYPES = [
103
+ "purchase",
104
+ "subscription-cancellation",
105
+ "subscription-renewal",
106
+ "manual-item-quantity-change",
107
+ "chargeback",
108
+ // todo
109
+ "product-change"
110
+ // todo
111
+ ];
112
+ var transactionSchema = (0, import_schema_fields.yupObject)({
113
+ id: (0, import_schema_fields.yupString)().defined(),
114
+ created_at_millis: (0, import_schema_fields.yupNumber)().defined(),
115
+ effective_at_millis: (0, import_schema_fields.yupNumber)().defined(),
116
+ type: (0, import_schema_fields.yupString)().oneOf(TRANSACTION_TYPES).nullable().defined(),
117
+ entries: (0, import_schema_fields.yupArray)(transactionEntrySchema).defined(),
118
+ adjusted_by: (0, import_schema_fields.yupArray)(
119
+ (0, import_schema_fields.yupObject)({
120
+ transaction_id: (0, import_schema_fields.yupString)().defined(),
121
+ entry_index: (0, import_schema_fields.yupNumber)().integer().min(0).defined()
122
+ }).defined()
123
+ ).defined(),
124
+ test_mode: (0, import_schema_fields.yupBoolean)().defined()
41
125
  }).defined();
42
126
  // Annotate the CommonJS export names for ESM import in node:
43
127
  0 && (module.exports = {
44
- adminTransaction
128
+ TRANSACTION_TYPES,
129
+ transactionEntrySchema,
130
+ transactionSchema
45
131
  });
46
132
  //# sourceMappingURL=transactions.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/interface/crud/transactions.ts"],"sourcesContent":["import type { InferType } from \"yup\";\nimport { customerTypeSchema, productPriceSchema, yupBoolean, yupNumber, yupObject, yupString } from \"../../schema-fields\";\n\nexport const adminTransaction = yupObject({\n id: yupString().defined(),\n type: yupString().oneOf([\"subscription\", \"one_time\", \"item_quantity_change\"]).defined(),\n created_at_millis: yupNumber().defined(),\n customer_type: customerTypeSchema.defined(),\n customer_id: yupString().defined(),\n quantity: yupNumber().defined(),\n test_mode: yupBoolean().defined(),\n product_display_name: yupString().nullable().defined(),\n price: productPriceSchema.omit([\"serverOnly\", \"freeTrial\"]).nullable().defined(),\n status: yupString().nullable().defined(),\n item_id: yupString().optional(),\n description: yupString().nullable().optional(),\n expires_at_millis: yupNumber().nullable().optional(),\n}).defined();\n\nexport type AdminTransaction = InferType<typeof adminTransaction>;\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,2BAAoG;AAE7F,IAAM,uBAAmB,gCAAU;AAAA,EACxC,QAAI,gCAAU,EAAE,QAAQ;AAAA,EACxB,UAAM,gCAAU,EAAE,MAAM,CAAC,gBAAgB,YAAY,sBAAsB,CAAC,EAAE,QAAQ;AAAA,EACtF,uBAAmB,gCAAU,EAAE,QAAQ;AAAA,EACvC,eAAe,wCAAmB,QAAQ;AAAA,EAC1C,iBAAa,gCAAU,EAAE,QAAQ;AAAA,EACjC,cAAU,gCAAU,EAAE,QAAQ;AAAA,EAC9B,eAAW,iCAAW,EAAE,QAAQ;AAAA,EAChC,0BAAsB,gCAAU,EAAE,SAAS,EAAE,QAAQ;AAAA,EACrD,OAAO,wCAAmB,KAAK,CAAC,cAAc,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ;AAAA,EAC/E,YAAQ,gCAAU,EAAE,SAAS,EAAE,QAAQ;AAAA,EACvC,aAAS,gCAAU,EAAE,SAAS;AAAA,EAC9B,iBAAa,gCAAU,EAAE,SAAS,EAAE,SAAS;AAAA,EAC7C,uBAAmB,gCAAU,EAAE,SAAS,EAAE,SAAS;AACrD,CAAC,EAAE,QAAQ;","names":[]}
1
+ {"version":3,"sources":["../../../src/interface/crud/transactions.ts"],"sourcesContent":["import type { InferType } from \"yup\";\nimport {\n customerTypeSchema,\n inlineProductSchema,\n moneyAmountSchema,\n yupArray,\n yupBoolean,\n yupNumber,\n yupObject,\n yupString,\n yupUnion,\n} from \"../../schema-fields\";\nimport { SUPPORTED_CURRENCIES } from \"../../utils/currency-constants\";\nimport { typedFromEntries } from \"../../utils/objects\";\nimport { throwErr } from \"../../utils/errors\";\n\n\nconst USD_CURRENCY = SUPPORTED_CURRENCIES.find((currency) => currency.code === \"USD\") ?? throwErr(\"USD currency configuration missing in SUPPORTED_CURRENCIES\");\n\nconst chargedAmountSchema = yupObject({\n ...typedFromEntries(SUPPORTED_CURRENCIES.map((currency) => [currency.code, moneyAmountSchema(currency).optional()])),\n}).noUnknown(true).test(\"at-least-one-currency\", \"charged_amount must include at least one currency amount\", (value) => {\n return Object.values(value).some((amount) => typeof amount === \"string\");\n}).defined();\n\nconst netAmountSchema = yupObject({\n USD: moneyAmountSchema(USD_CURRENCY).defined(),\n}).noUnknown(true).defined();\n\nconst transactionEntryMoneyTransferSchema = yupObject({\n type: yupString().oneOf([\"money_transfer\"]).defined(),\n adjusted_transaction_id: yupString().nullable().defined(),\n adjusted_entry_index: yupNumber().integer().min(0).nullable().defined(),\n customer_type: customerTypeSchema.defined(),\n customer_id: yupString().defined(),\n charged_amount: chargedAmountSchema,\n net_amount: netAmountSchema,\n}).defined();\n\nconst transactionEntryItemQuantityChangeSchema = yupObject({\n type: yupString().oneOf([\"item_quantity_change\"]).defined(),\n adjusted_transaction_id: yupString().nullable().defined(),\n adjusted_entry_index: yupNumber().integer().min(0).nullable().defined(),\n customer_type: customerTypeSchema.defined(),\n customer_id: yupString().defined(),\n item_id: yupString().defined(),\n quantity: yupNumber().defined(),\n}).defined();\n\nconst transactionEntryProductGrantSchema = yupObject({\n type: yupString().oneOf([\"product_grant\"]).defined(),\n adjusted_transaction_id: yupString().nullable().defined(),\n adjusted_entry_index: yupNumber().integer().min(0).nullable().defined(),\n customer_type: customerTypeSchema.defined(),\n customer_id: yupString().defined(),\n product_id: yupString().nullable().defined(),\n product: inlineProductSchema.defined(),\n price_id: yupString().nullable().defined(),\n quantity: yupNumber().defined(),\n subscription_id: yupString().optional(),\n one_time_purchase_id: yupString().optional(),\n}).test(\n \"exclusive-reference\",\n \"subscription_id and one_time_purchase_id cannot both be set\",\n (value, context) => {\n if (value.subscription_id != null && value.one_time_purchase_id != null) {\n return context.createError({\n message: \"subscription_id and one_time_purchase_id cannot both be set\",\n });\n }\n return true;\n },\n).defined();\n\nconst transactionEntryProductRevocationSchema = yupObject({\n type: yupString().oneOf([\"product_revocation\"]).defined(),\n adjusted_transaction_id: yupString().defined(),\n adjusted_entry_index: yupNumber().integer().min(0).defined(),\n quantity: yupNumber().defined(),\n}).defined();\n\nconst transactionEntryProductRevocationReversalSchema = yupObject({\n type: yupString().oneOf([\"product_revocation_reversal\"]).defined(),\n adjusted_transaction_id: yupString().defined(),\n adjusted_entry_index: yupNumber().integer().min(0).defined(),\n quantity: yupNumber().defined(),\n}).defined();\n\nexport const transactionEntrySchema = yupUnion(\n transactionEntryMoneyTransferSchema,\n transactionEntryItemQuantityChangeSchema,\n transactionEntryProductGrantSchema,\n transactionEntryProductRevocationSchema,\n transactionEntryProductRevocationReversalSchema,\n).defined();\n\nexport type TransactionEntry = InferType<typeof transactionEntrySchema>;\n\nexport const TRANSACTION_TYPES = [\n \"purchase\",\n \"subscription-cancellation\",\n \"subscription-renewal\",\n \"manual-item-quantity-change\",\n \"chargeback\", // todo\n \"product-change\", // todo\n] as const;\n\nexport type TransactionType = (typeof TRANSACTION_TYPES)[number];\n\nexport const transactionSchema = yupObject({\n id: yupString().defined(),\n created_at_millis: yupNumber().defined(),\n effective_at_millis: yupNumber().defined(),\n type: yupString().oneOf(TRANSACTION_TYPES).nullable().defined(),\n entries: yupArray(transactionEntrySchema).defined(),\n adjusted_by: yupArray(\n yupObject({\n transaction_id: yupString().defined(),\n entry_index: yupNumber().integer().min(0).defined(),\n }).defined(),\n ).defined(),\n test_mode: yupBoolean().defined(),\n}).defined();\n\nexport type Transaction = InferType<typeof transactionSchema>;\n"],"mappings":"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","names":[]}