@hexclave/shared 1.0.34 → 1.0.35

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 (47) hide show
  1. package/dist/ai/unified-prompts/reminders.js +2 -2
  2. package/dist/ai/unified-prompts/reminders.js.map +1 -1
  3. package/dist/config/schema.d.ts +112 -112
  4. package/dist/esm/ai/unified-prompts/reminders.js +2 -2
  5. package/dist/esm/ai/unified-prompts/reminders.js.map +1 -1
  6. package/dist/esm/config/schema.d.ts +112 -112
  7. package/dist/esm/helpers/init-prompt.js +1 -1
  8. package/dist/esm/helpers/init-prompt.js.map +1 -1
  9. package/dist/esm/interface/admin-metrics.d.ts +17 -17
  10. package/dist/esm/interface/conversations.d.ts +31 -31
  11. package/dist/esm/interface/crud/current-user.d.ts +14 -14
  12. package/dist/esm/interface/crud/email-outbox.d.ts +138 -138
  13. package/dist/esm/interface/crud/products.d.ts +23 -23
  14. package/dist/esm/interface/crud/products.d.ts.map +1 -1
  15. package/dist/esm/interface/crud/project-api-keys.d.ts +2 -2
  16. package/dist/esm/interface/crud/projects.d.ts +7 -7
  17. package/dist/esm/interface/crud/team-member-profiles.d.ts +24 -24
  18. package/dist/esm/interface/crud/transactions.d.ts +25 -25
  19. package/dist/esm/interface/crud/transactions.d.ts.map +1 -1
  20. package/dist/esm/interface/crud/users.d.ts +16 -16
  21. package/dist/esm/interface/plan-usage.d.ts +2 -2
  22. package/dist/esm/interface/webhooks.d.ts +2 -2
  23. package/dist/esm/known-errors.d.ts +6 -6
  24. package/dist/esm/schema-fields.d.ts +17 -17
  25. package/dist/esm/sessions.d.ts +8 -8
  26. package/dist/helpers/init-prompt.js +1 -1
  27. package/dist/helpers/init-prompt.js.map +1 -1
  28. package/dist/interface/admin-metrics.d.ts +17 -17
  29. package/dist/interface/conversations.d.ts +31 -31
  30. package/dist/interface/crud/current-user.d.ts +14 -14
  31. package/dist/interface/crud/email-outbox.d.ts +138 -138
  32. package/dist/interface/crud/products.d.ts +23 -23
  33. package/dist/interface/crud/products.d.ts.map +1 -1
  34. package/dist/interface/crud/project-api-keys.d.ts +2 -2
  35. package/dist/interface/crud/projects.d.ts +7 -7
  36. package/dist/interface/crud/team-member-profiles.d.ts +24 -24
  37. package/dist/interface/crud/transactions.d.ts +25 -25
  38. package/dist/interface/crud/transactions.d.ts.map +1 -1
  39. package/dist/interface/crud/users.d.ts +16 -16
  40. package/dist/interface/plan-usage.d.ts +2 -2
  41. package/dist/interface/webhooks.d.ts +2 -2
  42. package/dist/known-errors.d.ts +6 -6
  43. package/dist/schema-fields.d.ts +17 -17
  44. package/dist/sessions.d.ts +8 -8
  45. package/package.json +1 -1
  46. package/src/ai/unified-prompts/reminders.ts +1 -1
  47. package/src/helpers/init-prompt.ts +1 -1
@@ -98,7 +98,7 @@ declare const KnownErrors: {
98
98
  };
99
99
  AccessTypeWithoutProjectId: KnownErrorConstructor<KnownError & KnownErrorBrand<"PROJECT_AUTHENTICATION_ERROR"> & {
100
100
  constructorArgs: [statusCode: number, humanReadableMessage: string, details?: Json | undefined];
101
- } & KnownErrorBrand<"INVALID_PROJECT_AUTHENTICATION"> & KnownErrorBrand<"ACCESS_TYPE_WITHOUT_PROJECT_ID">, [accessType: "server" | "admin" | "client"]> & {
101
+ } & KnownErrorBrand<"INVALID_PROJECT_AUTHENTICATION"> & KnownErrorBrand<"ACCESS_TYPE_WITHOUT_PROJECT_ID">, [accessType: "client" | "server" | "admin"]> & {
102
102
  errorCode: "ACCESS_TYPE_WITHOUT_PROJECT_ID";
103
103
  };
104
104
  AccessTypeRequired: KnownErrorConstructor<KnownError & KnownErrorBrand<"PROJECT_AUTHENTICATION_ERROR"> & {
@@ -111,7 +111,7 @@ declare const KnownErrors: {
111
111
  };
112
112
  InsufficientAccessType: KnownErrorConstructor<KnownError & KnownErrorBrand<"PROJECT_AUTHENTICATION_ERROR"> & {
113
113
  constructorArgs: [statusCode: number, humanReadableMessage: string, details?: Json | undefined];
114
- } & KnownErrorBrand<"INVALID_PROJECT_AUTHENTICATION"> & KnownErrorBrand<"INSUFFICIENT_ACCESS_TYPE">, [actualAccessType: "server" | "admin" | "client", allowedAccessTypes: ("server" | "admin" | "client")[]]> & {
114
+ } & KnownErrorBrand<"INVALID_PROJECT_AUTHENTICATION"> & KnownErrorBrand<"INSUFFICIENT_ACCESS_TYPE">, [actualAccessType: "client" | "server" | "admin", allowedAccessTypes: ("client" | "server" | "admin")[]]> & {
115
115
  errorCode: "INSUFFICIENT_ACCESS_TYPE";
116
116
  };
117
117
  InvalidPublishableClientKey: KnownErrorConstructor<KnownError & KnownErrorBrand<"PROJECT_AUTHENTICATION_ERROR"> & {
@@ -369,7 +369,7 @@ declare const KnownErrors: {
369
369
  PermissionNotFound: KnownErrorConstructor<KnownError & KnownErrorBrand<"PERMISSION_NOT_FOUND">, [permissionId: string]> & {
370
370
  errorCode: "PERMISSION_NOT_FOUND";
371
371
  };
372
- PermissionScopeMismatch: KnownErrorConstructor<KnownError & KnownErrorBrand<"WRONG_PERMISSION_SCOPE">, [permissionId: string, expectedScope: "project" | "team", actualScope: "project" | "team" | null]> & {
372
+ PermissionScopeMismatch: KnownErrorConstructor<KnownError & KnownErrorBrand<"WRONG_PERMISSION_SCOPE">, [permissionId: string, expectedScope: "team" | "project", actualScope: "team" | "project" | null]> & {
373
373
  errorCode: "WRONG_PERMISSION_SCOPE";
374
374
  };
375
375
  ContainedPermissionNotFound: KnownErrorConstructor<KnownError & KnownErrorBrand<"CONTAINED_PERMISSION_NOT_FOUND">, [permissionId: string]> & {
@@ -512,7 +512,7 @@ declare const KnownErrors: {
512
512
  ItemNotFound: KnownErrorConstructor<KnownError & KnownErrorBrand<"ITEM_NOT_FOUND">, [itemId: string]> & {
513
513
  errorCode: "ITEM_NOT_FOUND";
514
514
  };
515
- ItemCustomerTypeDoesNotMatch: KnownErrorConstructor<KnownError & KnownErrorBrand<"ITEM_CUSTOMER_TYPE_DOES_NOT_MATCH">, [itemId: string, customerId: string, itemCustomerType: "user" | "team" | "custom" | undefined, actualCustomerType: "user" | "team" | "custom"]> & {
515
+ ItemCustomerTypeDoesNotMatch: KnownErrorConstructor<KnownError & KnownErrorBrand<"ITEM_CUSTOMER_TYPE_DOES_NOT_MATCH">, [itemId: string, customerId: string, itemCustomerType: "team" | "user" | "custom" | undefined, actualCustomerType: "team" | "user" | "custom"]> & {
516
516
  errorCode: "ITEM_CUSTOMER_TYPE_DOES_NOT_MATCH";
517
517
  };
518
518
  CustomerDoesNotExist: KnownErrorConstructor<KnownError & KnownErrorBrand<"CUSTOMER_DOES_NOT_EXIST">, [customerId: string]> & {
@@ -521,7 +521,7 @@ declare const KnownErrors: {
521
521
  ProductDoesNotExist: KnownErrorConstructor<KnownError & KnownErrorBrand<"PRODUCT_DOES_NOT_EXIST">, [productId: string, context: "item_exists" | "server_only" | null]> & {
522
522
  errorCode: "PRODUCT_DOES_NOT_EXIST";
523
523
  };
524
- ProductCustomerTypeDoesNotMatch: KnownErrorConstructor<KnownError & KnownErrorBrand<"PRODUCT_CUSTOMER_TYPE_DOES_NOT_MATCH">, [productId: string | undefined, customerId: string, productCustomerType: "user" | "team" | "custom" | undefined, actualCustomerType: "user" | "team" | "custom"]> & {
524
+ ProductCustomerTypeDoesNotMatch: KnownErrorConstructor<KnownError & KnownErrorBrand<"PRODUCT_CUSTOMER_TYPE_DOES_NOT_MATCH">, [productId: string | undefined, customerId: string, productCustomerType: "team" | "user" | "custom" | undefined, actualCustomerType: "team" | "user" | "custom"]> & {
525
525
  errorCode: "PRODUCT_CUSTOMER_TYPE_DOES_NOT_MATCH";
526
526
  };
527
527
  ProductAlreadyGranted: KnownErrorConstructor<KnownError & KnownErrorBrand<"PRODUCT_ALREADY_GRANTED">, [productId: string, customerId: string]> & {
@@ -548,7 +548,7 @@ declare const KnownErrors: {
548
548
  StripeAccountInfoNotFound: KnownErrorConstructor<KnownError & KnownErrorBrand<"STRIPE_ACCOUNT_INFO_NOT_FOUND">, []> & {
549
549
  errorCode: "STRIPE_ACCOUNT_INFO_NOT_FOUND";
550
550
  };
551
- DefaultPaymentMethodRequired: KnownErrorConstructor<KnownError & KnownErrorBrand<"DEFAULT_PAYMENT_METHOD_REQUIRED">, [customerType: "user" | "team", customerId: string]> & {
551
+ DefaultPaymentMethodRequired: KnownErrorConstructor<KnownError & KnownErrorBrand<"DEFAULT_PAYMENT_METHOD_REQUIRED">, [customerType: "team" | "user", customerId: string]> & {
552
552
  errorCode: "DEFAULT_PAYMENT_METHOD_REQUIRED";
553
553
  };
554
554
  NewPurchasesBlocked: KnownErrorConstructor<KnownError & KnownErrorBrand<"NEW_PURCHASES_BLOCKED">, []> & {
@@ -113,7 +113,7 @@ declare const moneyAmountSchema: (currency: Currency) => yup$1.StringSchema<stri
113
113
  */
114
114
  declare const strictEmailSchema: (message: string | undefined) => yup$1.StringSchema<string | undefined, yup$1.AnyObject, undefined, "">;
115
115
  declare const emailSchema: yup$1.StringSchema<string | undefined, yup$1.AnyObject, undefined, "">;
116
- declare const clientOrHigherAuthTypeSchema: yup$1.StringSchema<"server" | "admin" | "client", yup$1.AnyObject, undefined, "">;
116
+ declare const clientOrHigherAuthTypeSchema: yup$1.StringSchema<"client" | "server" | "admin", yup$1.AnyObject, undefined, "">;
117
117
  declare const serverOrHigherAuthTypeSchema: yup$1.StringSchema<"server" | "admin", yup$1.AnyObject, undefined, "">;
118
118
  declare const adminAuthTypeSchema: yup$1.StringSchema<"admin", yup$1.AnyObject, undefined, "">;
119
119
  declare const projectIdSchema: yup$1.StringSchema<string | undefined, yup$1.AnyObject, undefined, "">;
@@ -174,7 +174,7 @@ declare const customDashboardsSchema: yup$1.MixedSchema<Record<string, {
174
174
  displayName: string;
175
175
  tsxSource: string;
176
176
  }>, yup$1.AnyObject, undefined, "">;
177
- declare const customerTypeSchema: yup$1.StringSchema<"user" | "team" | "custom" | undefined, yup$1.AnyObject, undefined, "">;
177
+ declare const customerTypeSchema: yup$1.StringSchema<"team" | "user" | "custom" | undefined, yup$1.AnyObject, undefined, "">;
178
178
  /**
179
179
  * Schema for a single product price. Each currency field (USD, EUR, etc.) is a decimal string
180
180
  * like `"9.99"` or `"1000"` — never cent integers. See `MoneyAmount` for the exact format.
@@ -203,9 +203,6 @@ declare const productPriceSchema: yup$1.ObjectSchema<{
203
203
  CAD: undefined;
204
204
  }, "">;
205
205
  declare const pricesSchema: yup$1.MixedSchema<Record<string, {
206
- interval?: DayInterval | undefined;
207
- freeTrial?: DayInterval | undefined;
208
- serverOnly?: boolean | undefined;
209
206
  USD?: string | undefined;
210
207
  EUR?: string | undefined;
211
208
  GBP?: string | undefined;
@@ -213,19 +210,19 @@ declare const pricesSchema: yup$1.MixedSchema<Record<string, {
213
210
  INR?: string | undefined;
214
211
  AUD?: string | undefined;
215
212
  CAD?: string | undefined;
213
+ interval?: DayInterval | undefined;
214
+ serverOnly?: boolean | undefined;
215
+ freeTrial?: DayInterval | undefined;
216
216
  }>, yup$1.AnyObject, undefined, "">;
217
217
  declare const productSchema: yup$1.ObjectSchema<{
218
218
  displayName: string | undefined;
219
219
  productLineId: string | undefined;
220
220
  isAddOnTo: false | Record<string, true> | undefined;
221
- customerType: "user" | "team" | "custom";
221
+ customerType: "team" | "user" | "custom";
222
222
  freeTrial: DayInterval | undefined;
223
223
  serverOnly: boolean | undefined;
224
224
  stackable: boolean | undefined;
225
225
  prices: Record<string, {
226
- interval?: DayInterval | undefined;
227
- freeTrial?: DayInterval | undefined;
228
- serverOnly?: boolean | undefined;
229
226
  USD?: string | undefined;
230
227
  EUR?: string | undefined;
231
228
  GBP?: string | undefined;
@@ -233,6 +230,9 @@ declare const productSchema: yup$1.ObjectSchema<{
233
230
  INR?: string | undefined;
234
231
  AUD?: string | undefined;
235
232
  CAD?: string | undefined;
233
+ interval?: DayInterval | undefined;
234
+ serverOnly?: boolean | undefined;
235
+ freeTrial?: DayInterval | undefined;
236
236
  }>;
237
237
  includedItems: Record<string, {
238
238
  repeat?: "never" | DayInterval | undefined;
@@ -257,14 +257,11 @@ declare const productSchemaWithMetadata: yup$1.ObjectSchema<{
257
257
  displayName: string | undefined;
258
258
  productLineId: string | undefined;
259
259
  isAddOnTo: false | Record<string, true> | undefined;
260
- customerType: "user" | "team" | "custom";
260
+ customerType: "team" | "user" | "custom";
261
261
  freeTrial: DayInterval | undefined;
262
262
  serverOnly: boolean | undefined;
263
263
  stackable: boolean | undefined;
264
264
  prices: Record<string, {
265
- interval?: DayInterval | undefined;
266
- freeTrial?: DayInterval | undefined;
267
- serverOnly?: boolean | undefined;
268
265
  USD?: string | undefined;
269
266
  EUR?: string | undefined;
270
267
  GBP?: string | undefined;
@@ -272,6 +269,9 @@ declare const productSchemaWithMetadata: yup$1.ObjectSchema<{
272
269
  INR?: string | undefined;
273
270
  AUD?: string | undefined;
274
271
  CAD?: string | undefined;
272
+ interval?: DayInterval | undefined;
273
+ serverOnly?: boolean | undefined;
274
+ freeTrial?: DayInterval | undefined;
275
275
  }>;
276
276
  includedItems: Record<string, {
277
277
  repeat?: "never" | DayInterval | undefined;
@@ -298,12 +298,11 @@ declare const productSchemaWithMetadata: yup$1.ObjectSchema<{
298
298
  }, "">;
299
299
  declare const inlineProductSchema: yup$1.ObjectSchema<{
300
300
  display_name: string;
301
- customer_type: "user" | "team" | "custom";
301
+ customer_type: "team" | "user" | "custom";
302
302
  free_trial: DayInterval | undefined;
303
303
  server_only: boolean;
304
304
  stackable: boolean;
305
305
  prices: Record<string, {
306
- interval?: DayInterval | undefined;
307
306
  USD?: string | undefined;
308
307
  EUR?: string | undefined;
309
308
  GBP?: string | undefined;
@@ -311,11 +310,12 @@ declare const inlineProductSchema: yup$1.ObjectSchema<{
311
310
  INR?: string | undefined;
312
311
  AUD?: string | undefined;
313
312
  CAD?: string | undefined;
313
+ interval?: DayInterval | undefined;
314
314
  free_trial?: DayInterval | undefined;
315
315
  }>;
316
316
  included_items: Record<string, {
317
- repeat?: "never" | DayInterval | undefined;
318
317
  quantity?: number | undefined;
318
+ repeat?: "never" | DayInterval | undefined;
319
319
  expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
320
320
  }>;
321
321
  client_metadata: {} | null | undefined;
@@ -469,10 +469,10 @@ declare function yupDefinedWhen<S extends yup$1.AnyObject>(schema: S, triggers:
469
469
  declare function yupDefinedAndNonEmptyWhen<S extends yup$1.StringSchema>(schema: S, triggers: Record<string, any>): S;
470
470
  declare const branchConfigSourceSchema: yup$1.MixedSchema<{
471
471
  workflow_path?: string | undefined;
472
- branch: string;
473
472
  type: "pushed-from-github";
474
473
  owner: string;
475
474
  repo: string;
475
+ branch: string;
476
476
  commit_hash: string;
477
477
  config_file_path: string;
478
478
  } | {
@@ -9,24 +9,24 @@ declare class AccessToken {
9
9
  private constructor();
10
10
  get payload(): {
11
11
  exp?: number | undefined;
12
+ project_id: string;
13
+ refresh_token_id: string;
14
+ email: string | null;
15
+ restricted_reason: {
16
+ type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
17
+ } | null;
18
+ branch_id: string;
12
19
  sub: string;
13
- name: string | null;
14
20
  iat: number;
15
21
  iss: string;
16
22
  aud: string;
17
- project_id: string;
18
- branch_id: string;
19
- refresh_token_id: string;
20
23
  role: "authenticated";
21
- email: string | null;
24
+ name: string | null;
22
25
  email_verified: boolean;
23
26
  selected_team_id: string | null;
24
27
  signed_up_at: number;
25
28
  is_anonymous: boolean;
26
29
  is_restricted: boolean;
27
- restricted_reason: {
28
- type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
29
- } | null;
30
30
  requires_totp_mfa: boolean;
31
31
  };
32
32
  get expiresAt(): Date;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hexclave/shared",
3
- "version": "1.0.34",
3
+ "version": "1.0.35",
4
4
  "repository": "https://github.com/hexclave/hexclave",
5
5
  "files": [
6
6
  "README.md",
@@ -5,7 +5,7 @@ export const remindersPrompt = deindent`
5
5
  Below are some reminders on Hexclave and how to learn more about it. If you're summarizing this, always try to return the entirety of the reminders verbatim, or keep as much information as possible.
6
6
 
7
7
  - Hexclave has multiple sources of documentation optimized for LLMs. For the canonical, always-fresh instructions for every Hexclave surface, always prefer these sources over information that may be outdated or stale. Do not rely on training data or memory.
8
- - [Highest priority] If you have a specific question, ask the Hexclave skill assistant at https://skill.hexclave.com/ask. Add \`?question=<...>\` (the exact question you're looking to answer) and \`?context=<...>\` (the higher-level task that you or the user is trying to accomplish). The endpoint already returns a concise answer, so fetch it without summarization tools if possible; if your normal web fetch path would summarize it, use something like \`curl -sSL "https://skill.hexclave.com/ask?question=<...>&context=<...>"\` instead. If the Hexclave MCP is available, the \`ask_hexclave\` tool is equivalent to this endpoint and can be used for the same purpose.
8
+ - [Highest priority] If you have a specific question, ask the Hexclave skill assistant at https://skill.hexclave.com/ask. Add \`?question=<...>\` (the exact question you're looking to answer) and \`?context=<...>\` (the higher-level task that you or the user is trying to accomplish). The endpoint already returns a concise answer, so fetch it without summarization tools if possible; if your normal web fetch path would summarize it, use something like \`curl -sSL "https://skill.hexclave.com/ask?question=<...>&context=<...>"\` instead. If the Hexclave MCP is available, the \`ask_hexclave\` tool is equivalent to this endpoint and can be used for the same purpose. If your request times out or returns an empty response, also use curl.
9
9
  - [High priority] If you need broad baseline context instead of a specific answer, fetch the latest full skill documentation from https://skill.hexclave.com/full. Fetch the entire page, not just a summary. You can either use a web fetch tool, or call it using curl: \`curl -sSL https://skill.hexclave.com/full\`. Treat this as a fallback after https://skill.hexclave.com/ask or the equivalent \`ask_hexclave\` tool.
10
10
  - [Medium priority] If you are looking to implement something with the JS SDK specifically, the package (which you can probably find in \`node_modules\`) actually contains the source code for the installed version of the SDK. For the interfaces in particular, you can find most of them in the \`src/lib/hexclave-app\` folder of your SDK package.
11
11
  - [Low priority] If you're looking for information that's not in the skill documentation, and the \`ask_hexclave\` tool or https://skill.hexclave.com/ask isn't available (or failed to answer your question), you can also fetch the human documentation from https://docs.hexclave.com (it may also be available as a tool). This is especially useful when you're looking to answer conceptual questions.
@@ -9,7 +9,7 @@ The Hexclave CLI already created or linked this project to a local Hexclave deve
9
9
  ${configPath}
10
10
  \`\`\`
11
11
 
12
- Do not create or link another Hexclave project. When the SDK setup instructions mention creating \`stack.config.ts\` or wrapping the dev script with \`stack dev --config-file\`, use the config file path above.
12
+ Do not create or link another Hexclave project. When the SDK setup instructions mention creating \`hexclave.config.ts\` or wrapping the dev script with \`hexclave dev --config-file\`, use the config file path above.
13
13
  `;
14
14
  }
15
15