@auxx/sdk 0.0.13 → 0.0.15

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 (54) hide show
  1. package/lib/api/api.js +2 -1
  2. package/lib/api/schemas.js +3 -0
  3. package/lib/auth/auth.js +3 -0
  4. package/lib/commands/build/validate-typescript.js +33 -2
  5. package/lib/commands/build.js +3 -26
  6. package/lib/commands/dev.js +2 -0
  7. package/lib/commands/version/create/bundle-javascript.js +7 -1
  8. package/lib/commands/version/create.js +35 -2
  9. package/lib/constants/app-fields-files.js +1 -0
  10. package/lib/env.js +1 -0
  11. package/lib/root/app.d.ts +2 -0
  12. package/lib/root/app.d.ts.map +1 -1
  13. package/lib/root/fields/define-field.d.ts +67 -0
  14. package/lib/root/fields/define-field.d.ts.map +1 -0
  15. package/lib/root/fields/define-field.js +21 -0
  16. package/lib/root/fields/field-types.d.ts +47 -0
  17. package/lib/root/fields/field-types.d.ts.map +1 -0
  18. package/lib/root/fields/field-types.js +25 -0
  19. package/lib/root/fields/index.d.ts +3 -0
  20. package/lib/root/fields/index.d.ts.map +1 -0
  21. package/lib/root/fields/index.js +2 -0
  22. package/lib/root/index.d.ts +1 -0
  23. package/lib/root/index.d.ts.map +1 -1
  24. package/lib/root/index.js +1 -0
  25. package/lib/root/tools/define-tool.d.ts.map +1 -1
  26. package/lib/root/tools/define-tool.js +14 -0
  27. package/lib/root/tools/types.d.ts +16 -22
  28. package/lib/root/tools/types.d.ts.map +1 -1
  29. package/lib/root/workflow/types.d.ts +1 -0
  30. package/lib/root/workflow/types.d.ts.map +1 -1
  31. package/lib/runtime/workflow.js +2 -2
  32. package/lib/server/connections.d.ts +4 -0
  33. package/lib/server/connections.d.ts.map +1 -1
  34. package/lib/server/entities.d.ts +44 -0
  35. package/lib/server/entities.d.ts.map +1 -0
  36. package/lib/server/entities.js +3 -0
  37. package/lib/server/index.d.ts +2 -1
  38. package/lib/server/index.d.ts.map +1 -1
  39. package/lib/server/storage.d.ts +30 -3
  40. package/lib/server/storage.d.ts.map +1 -1
  41. package/lib/shared/errors.d.ts +30 -0
  42. package/lib/shared/errors.d.ts.map +1 -1
  43. package/lib/shared/errors.js +48 -0
  44. package/lib/shared/index.d.ts +1 -1
  45. package/lib/shared/index.d.ts.map +1 -1
  46. package/lib/shared/index.js +1 -1
  47. package/lib/util/add-auxx-hidden-directory-to-ts-config.js +6 -2
  48. package/lib/util/compile-and-extract-catalog.js +40 -1
  49. package/lib/util/ensure-app-fields-types.js +26 -0
  50. package/lib/util/generate-app-fields-types.js +63 -0
  51. package/lib/util/warn-if-app-type-annotated.js +9 -0
  52. package/package.json +5 -1
  53. package/template/src/events/connection-added.event.ts +17 -2
  54. package/template/tsconfig.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/root/workflow/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/root/workflow/types.ts"],"names":[],"mappings":"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"}
@@ -276,7 +276,7 @@ async function renderWorkflowNode(blockId, nodeId, data) {
276
276
  console.error('[Workflow] Block not found:', blockId);
277
277
  throw new Error(`Workflow block not found: ${blockId}`);
278
278
  }
279
- const NodeComponent = block.node;
279
+ const NodeComponent = block.node ?? block.workflow?.node;
280
280
  if (!NodeComponent) {
281
281
  return {
282
282
  component: createDefaultNodeComponent(block, data),
@@ -320,7 +320,7 @@ async function renderWorkflowPanel(blockId, nodeId, data) {
320
320
  console.error('[Workflow] Block not found for panel:', blockId);
321
321
  throw new Error(`Workflow block not found: ${blockId}`);
322
322
  }
323
- const PanelComponent = block.panel;
323
+ const PanelComponent = block.panel ?? block.workflow?.panel;
324
324
  if (!PanelComponent) {
325
325
  const defaultPanel = generateDefaultPanel(block, data);
326
326
  evaluateComputeOutputs(block, nodeId, data);
@@ -2,6 +2,7 @@ export interface Connection {
2
2
  id: string;
3
3
  type: 'oauth2-code' | 'secret';
4
4
  value: string;
5
+ fields?: Record<string, string>;
5
6
  metadata?: {
6
7
  scope?: string;
7
8
  externalUserId?: string;
@@ -10,6 +11,9 @@ export interface Connection {
10
11
  };
11
12
  expiresAt?: Date;
12
13
  }
14
+ export interface ConnectionAddedResult {
15
+ label?: string;
16
+ }
13
17
  export declare class ConnectionNotFoundError extends Error {
14
18
  scope: 'user' | 'organization';
15
19
  code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../src/server/connections.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IAEzB,EAAE,EAAE,MAAM,CAAA;IAGV,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAA;IAM9B,KAAK,EAAE,MAAM,CAAA;IAGb,QAAQ,CAAC,EAAE;QAET,KAAK,CAAC,EAAE,MAAM,CAAA;QAEd,cAAc,CAAC,EAAE,MAAM,CAAA;QAEvB,SAAS,CAAC,EAAE,MAAM,CAAA;QAElB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IAGD,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAMD,qBAAa,uBAAwB,SAAQ,KAAK;IAG7B,KAAK,EAAE,MAAM,GAAG,cAAc;IAFjD,IAAI,SAAyB;gBAEV,KAAK,EAAE,MAAM,GAAG,cAAc;CAIlD;AAcD,wBAAgB,aAAa,IAAI,UAAU,CAuB1C;AAaD,wBAAgB,iBAAiB,IAAI,UAAU,CAa9C;AA4BD,wBAAgB,yBAAyB,IAAI,UAAU,CAYtD"}
1
+ {"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../../src/server/connections.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IAEzB,EAAE,EAAE,MAAM,CAAA;IAGV,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAA;IAO9B,KAAK,EAAE,MAAM,CAAA;IAOb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAG/B,QAAQ,CAAC,EAAE;QAET,KAAK,CAAC,EAAE,MAAM,CAAA;QAEd,cAAc,CAAC,EAAE,MAAM,CAAA;QAEvB,SAAS,CAAC,EAAE,MAAM,CAAA;QAElB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IAGD,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB;AAmBD,MAAM,WAAW,qBAAqB;IAEpC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAMD,qBAAa,uBAAwB,SAAQ,KAAK;IAG7B,KAAK,EAAE,MAAM,GAAG,cAAc;IAFjD,IAAI,SAAyB;gBAEV,KAAK,EAAE,MAAM,GAAG,cAAc;CAIlD;AAcD,wBAAgB,aAAa,IAAI,UAAU,CAuB1C;AAaD,wBAAgB,iBAAiB,IAAI,UAAU,CAa9C;AA4BD,wBAAgB,yBAAyB,IAAI,UAAU,CAYtD"}
@@ -0,0 +1,44 @@
1
+ import type { AppFieldDefinition, AppFieldValues } from '../root/fields/define-field.js';
2
+ import type { EntityRefKind } from '../root/tools/types.js';
3
+ export type FieldValueInput = string | number | boolean | Date | Record<string, unknown> | null;
4
+ export type FieldValueOut = string | number | boolean | Record<string, unknown> | null;
5
+ export interface AppOwnedFieldRegistry {
6
+ }
7
+ type RegisteredFields = AppOwnedFieldRegistry extends {
8
+ fields: infer F extends readonly AppFieldDefinition[];
9
+ } ? F extends readonly [] ? null : F : null;
10
+ type WriteMap = RegisteredFields extends readonly AppFieldDefinition[] ? Partial<AppFieldValues<RegisteredFields>> : Record<string, FieldValueInput>;
11
+ type FieldKey = RegisteredFields extends readonly AppFieldDefinition[] ? keyof AppFieldValues<RegisteredFields> & string : string;
12
+ type ReadValue<K extends FieldKey> = RegisteredFields extends readonly AppFieldDefinition[] ? K extends keyof AppFieldValues<RegisteredFields> ? AppFieldValues<RegisteredFields>[K] | null : FieldValueOut | null : FieldValueOut | null;
13
+ type ReadValuesMap = RegisteredFields extends readonly AppFieldDefinition[] ? Partial<{
14
+ [K in keyof AppFieldValues<RegisteredFields>]: AppFieldValues<RegisteredFields>[K] | null;
15
+ }> : Record<string, FieldValueOut | null>;
16
+ export interface EntityRef {
17
+ recordId: string;
18
+ displayName: string | null;
19
+ }
20
+ export declare function setFieldValues(recordId: string, values: WriteMap): Promise<void>;
21
+ export declare function setFieldValues(entries: Array<{
22
+ recordId: string;
23
+ values: WriteMap;
24
+ }>): Promise<void>;
25
+ export declare function getFieldValue<K extends FieldKey>(recordId: string, fieldKey: K): Promise<ReadValue<K>>;
26
+ export declare function getFieldValues(recordId: string, fieldKeys?: FieldKey[]): Promise<ReadValuesMap>;
27
+ export declare function findRecordByFieldValue(input: {
28
+ targetEntity: EntityRefKind;
29
+ fieldKey: FieldKey;
30
+ value: string;
31
+ }): Promise<EntityRef | null>;
32
+ export declare function findByIntegrationId(input: {
33
+ kind: EntityRefKind;
34
+ source: string;
35
+ externalId: string;
36
+ }): Promise<EntityRef | null>;
37
+ export declare function findContactByEmail(input: {
38
+ email: string;
39
+ }): Promise<EntityRef | null>;
40
+ export declare function findContactByPhone(input: {
41
+ phone: string;
42
+ }): Promise<EntityRef | null>;
43
+ export {};
44
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/server/entities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Implementation stripped - provided by runtime
@@ -1,7 +1,8 @@
1
- export { ConnectionExpiredError } from '../shared/errors.js';
1
+ export { ConflictError, ConnectionExpiredError, InsufficientPermissionsError, InvalidInputError, NotFoundError, RateLimitError, UpstreamServiceError, } from '../shared/errors.js';
2
2
  export * from './auth.js';
3
3
  export * from './connections.js';
4
4
  export * from './database.js';
5
+ export * from './entities.js';
5
6
  export * from './fetch.js';
6
7
  export * from './settings.js';
7
8
  export * from './storage.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,qBAAqB,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA"}
@@ -1,4 +1,31 @@
1
- export declare function get(key: string): Promise<string | null>;
2
- export declare function set(key: string, value: string): Promise<void>;
3
- export declare function remove(key: string): Promise<void>;
1
+ export type StorageScope = 'installation' | 'connection';
2
+ export interface StorageOptions {
3
+ scope?: StorageScope;
4
+ }
5
+ export interface StorageSetOptions extends StorageOptions {
6
+ ttlSeconds?: number;
7
+ }
8
+ export interface StorageListOptions {
9
+ limit?: number;
10
+ }
11
+ export interface StorageItemApi {
12
+ get<T = unknown>(key: string, opts?: StorageOptions): Promise<{
13
+ value: T;
14
+ } | null>;
15
+ set(key: string, value: unknown, opts?: StorageSetOptions): Promise<void>;
16
+ setIfAbsent(key: string, value: unknown, opts?: StorageSetOptions): Promise<boolean>;
17
+ remove(key: string, opts?: StorageOptions): Promise<void>;
18
+ }
19
+ export interface StorageCollectionApi extends StorageItemApi {
20
+ list<T = unknown>(opts?: StorageListOptions): Promise<{
21
+ entries: Array<{
22
+ key: string;
23
+ value: T;
24
+ }>;
25
+ }>;
26
+ }
27
+ export interface Storage extends StorageItemApi {
28
+ collection(name: string, defaults?: StorageSetOptions): StorageCollectionApi;
29
+ }
30
+ export declare const storage: Storage;
4
31
  //# sourceMappingURL=storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/server/storage.ts"],"names":[],"mappings":"AAoBA,wBAAsB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAY7D;AAiBD,wBAAsB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnE;AAcD,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYvD"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/server/storage.ts"],"names":[],"mappings":"AAqCA,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,YAAY,CAAA;AAExD,MAAM,WAAW,cAAc;IAE7B,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IAEvD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IAEjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAGD,MAAM,WAAW,cAAc;IAE7B,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAClF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAMzE,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEpF,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D;AAGD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,IAAI,CAAC,CAAC,GAAG,OAAO,EACd,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,OAAQ,SAAQ,cAAc;IAE7C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAA;CAC7E;AAsBD,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAA"}
@@ -33,6 +33,36 @@ export declare class ConnectionExpiredError extends AuxxError {
33
33
  readonly scope: 'user' | 'organization';
34
34
  constructor(scope?: 'user' | 'organization');
35
35
  }
36
+ export declare class InsufficientPermissionsError extends AuxxError {
37
+ readonly scope: 'user' | 'organization';
38
+ readonly requiredScopes?: string[];
39
+ constructor(scope?: 'user' | 'organization', requiredScopes?: string[]);
40
+ }
41
+ export declare class RateLimitError extends AuxxError {
42
+ readonly retryAfterSeconds?: number;
43
+ constructor(retryAfterSeconds?: number);
44
+ }
45
+ export declare class UpstreamServiceError extends AuxxError {
46
+ readonly statusCode?: number;
47
+ constructor(message?: string, statusCode?: number);
48
+ }
49
+ export declare class InvalidInputError extends AuxxError {
50
+ readonly fields?: Array<{
51
+ field: string;
52
+ message: string;
53
+ }>;
54
+ constructor(message: string, fields?: Array<{
55
+ field: string;
56
+ message: string;
57
+ }>);
58
+ }
59
+ export declare class NotFoundError extends AuxxError {
60
+ readonly resource?: string;
61
+ constructor(message?: string, resource?: string);
62
+ }
63
+ export declare class ConflictError extends AuxxError {
64
+ constructor(message?: string);
65
+ }
36
66
  export declare class BlockValidationError extends AuxxError {
37
67
  readonly fields: Array<{
38
68
  field: string;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAKA,qBAAa,SAAU,SAAQ,KAAK;IAGzB,IAAI,CAAC,EAAE,MAAM;gBADpB,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA;CAKvB;AAKD,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,yBAA0B,SAAQ,SAAS;;CAKvD;AAKD,qBAAa,iCAAkC,SAAQ,SAAS;;CAK/D;AAKD,qBAAa,4BAA6B,SAAQ,SAAS;;CAK1D;AASD,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAA;gBAE3B,KAAK,GAAE,MAAM,GAAG,cAA+B;CAQ5D;AAyBD,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;gBAE9C,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM;CAMvE;AASD,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAI3C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAKA,qBAAa,SAAU,SAAQ,KAAK;IAGzB,IAAI,CAAC,EAAE,MAAM;gBADpB,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA;CAKvB;AAKD,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,YAAa,SAAQ,SAAS;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAKD,qBAAa,yBAA0B,SAAQ,SAAS;;CAKvD;AAKD,qBAAa,iCAAkC,SAAQ,SAAS;;CAK/D;AAKD,qBAAa,4BAA6B,SAAQ,SAAS;;CAK1D;AASD,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAA;gBAE3B,KAAK,GAAE,MAAM,GAAG,cAA+B;CAQ5D;AAqBD,qBAAa,4BAA6B,SAAQ,SAAS;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAA;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;gBAEtB,KAAK,GAAE,MAAM,GAAG,cAA+B,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE;CAWvF;AAQD,qBAAa,cAAe,SAAQ,SAAS;IAC3C,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;gBAEvB,iBAAiB,CAAC,EAAE,MAAM;CAQvC;AAOD,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,OAAO,SAA6C,EAAE,UAAU,CAAC,EAAE,MAAM;CAKtF;AASD,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;gBAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAKhF;AAOD,qBAAa,aAAc,SAAQ,SAAS;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;gBAEd,OAAO,SAA0C,EAAE,QAAQ,CAAC,EAAE,MAAM;CAKjF;AAOD,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,SAAkE;CAItF;AAyBD,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;gBAE9C,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,MAAM;CAMvE;AASD,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAI3C"}
@@ -68,6 +68,54 @@ export class ConnectionExpiredError extends AuxxError {
68
68
  this.scope = scope;
69
69
  }
70
70
  }
71
+ export class InsufficientPermissionsError extends AuxxError {
72
+ scope;
73
+ requiredScopes;
74
+ constructor(scope = 'organization', requiredScopes) {
75
+ super(`The connected account lacks the required permission${requiredScopes?.length ? ` (${requiredScopes.join(', ')})` : ''}. An admin may need to re-authorize the app with additional scopes.`, 'INSUFFICIENT_PERMISSIONS');
76
+ this.name = 'InsufficientPermissionsError';
77
+ this.scope = scope;
78
+ this.requiredScopes = requiredScopes;
79
+ }
80
+ }
81
+ export class RateLimitError extends AuxxError {
82
+ retryAfterSeconds;
83
+ constructor(retryAfterSeconds) {
84
+ super(`Rate limited by the provider${retryAfterSeconds ? `; retry in ~${retryAfterSeconds}s` : ''}.`, 'RATE_LIMIT');
85
+ this.name = 'RateLimitError';
86
+ this.retryAfterSeconds = retryAfterSeconds;
87
+ }
88
+ }
89
+ export class UpstreamServiceError extends AuxxError {
90
+ statusCode;
91
+ constructor(message = 'The provider is temporarily unavailable.', statusCode) {
92
+ super(message, 'UPSTREAM_ERROR');
93
+ this.name = 'UpstreamServiceError';
94
+ this.statusCode = statusCode;
95
+ }
96
+ }
97
+ export class InvalidInputError extends AuxxError {
98
+ fields;
99
+ constructor(message, fields) {
100
+ super(message, 'INVALID_INPUT');
101
+ this.name = 'InvalidInputError';
102
+ this.fields = fields;
103
+ }
104
+ }
105
+ export class NotFoundError extends AuxxError {
106
+ resource;
107
+ constructor(message = 'The requested resource was not found.', resource) {
108
+ super(message, 'RESOURCE_NOT_FOUND');
109
+ this.name = 'NotFoundError';
110
+ this.resource = resource;
111
+ }
112
+ }
113
+ export class ConflictError extends AuxxError {
114
+ constructor(message = 'The request conflicts with the current state of the resource.') {
115
+ super(message, 'CONFLICT');
116
+ this.name = 'ConflictError';
117
+ }
118
+ }
71
119
  export class BlockValidationError extends AuxxError {
72
120
  fields;
73
121
  constructor(fields) {
@@ -1,4 +1,4 @@
1
- export { AuxxError, AuxxNoOrganizationConnectionError, AuxxNoUserConnectionError, AuxxUnexpectedTransportError, BlockRuntimeError, BlockValidationError, ConnectionExpiredError, ExtensionInitError, ExtensionLoadError, MessageError, RenderError, ServerFunctionError, SurfaceError, } from './errors.js';
1
+ export { AuxxError, AuxxNoOrganizationConnectionError, AuxxNoUserConnectionError, AuxxUnexpectedTransportError, BlockRuntimeError, BlockValidationError, ConflictError, ConnectionExpiredError, ExtensionInitError, ExtensionLoadError, InsufficientPermissionsError, InvalidInputError, MessageError, NotFoundError, RateLimitError, RenderError, ServerFunctionError, SurfaceError, UpstreamServiceError, } from './errors.js';
2
2
  export { type CompleteFetchable, type ErrorFetchable, type Fetchable, FetchableState, getFetchableData, isCompleteFetchable, isErrorFetchable, isPendingFetchable, makeCompleteFetchable, makeErrorFetchable, makePendingFetchable, mapFetchable, type PendingFetchable, } from './fetchable.js';
3
3
  export { assertNever, assetSchema, environmentSchema, renderInstanceSchema, renderTreeSchema, safeValidate, surfaceMapSchema, surfaceSchema, type ValidatedAsset, type ValidatedEnvironment, type ValidatedRenderTree, type ValidatedSurface, type ValidatedSurfaceMap, validateAndParse, } from './validation.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,iCAAiC,EACjC,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,YAAY,GACb,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,iCAAiC,EACjC,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACL,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA"}
@@ -1,3 +1,3 @@
1
- export { AuxxError, AuxxNoOrganizationConnectionError, AuxxNoUserConnectionError, AuxxUnexpectedTransportError, BlockRuntimeError, BlockValidationError, ConnectionExpiredError, ExtensionInitError, ExtensionLoadError, MessageError, RenderError, ServerFunctionError, SurfaceError, } from './errors.js';
1
+ export { AuxxError, AuxxNoOrganizationConnectionError, AuxxNoUserConnectionError, AuxxUnexpectedTransportError, BlockRuntimeError, BlockValidationError, ConflictError, ConnectionExpiredError, ExtensionInitError, ExtensionLoadError, InsufficientPermissionsError, InvalidInputError, MessageError, NotFoundError, RateLimitError, RenderError, ServerFunctionError, SurfaceError, UpstreamServiceError, } from './errors.js';
2
2
  export { FetchableState, getFetchableData, isCompleteFetchable, isErrorFetchable, isPendingFetchable, makeCompleteFetchable, makeErrorFetchable, makePendingFetchable, mapFetchable, } from './fetchable.js';
3
3
  export { assertNever, assetSchema, environmentSchema, renderInstanceSchema, renderTreeSchema, safeValidate, surfaceMapSchema, surfaceSchema, validateAndParse, } from './validation.js';
@@ -8,6 +8,7 @@ const tsconfigSchema = z
8
8
  include: z.array(z.string()),
9
9
  })
10
10
  .passthrough();
11
+ const AUXX_INCLUDE_GLOB = `${HIDDEN_AUXX_DIRECTORY}/**/*`;
11
12
  export async function addAuxxHiddenDirectoryToTsConfig() {
12
13
  const tsconfigPath = path.resolve('./tsconfig.json');
13
14
  const tsconfigContentResult = await fromPromise(fs.readFile(tsconfigPath, 'utf-8'));
@@ -22,12 +23,15 @@ export async function addAuxxHiddenDirectoryToTsConfig() {
22
23
  if (isErrored(tsconfigResult)) {
23
24
  return errored({ code: 'FAILED_TO_PARSE_TSCONFIG' });
24
25
  }
25
- if (tsconfigResult.value.include.includes(HIDDEN_AUXX_DIRECTORY)) {
26
+ if (tsconfigResult.value.include.includes(AUXX_INCLUDE_GLOB)) {
26
27
  return complete(false);
27
28
  }
28
29
  const updatedTsconfig = {
29
30
  ...tsconfigResult.value,
30
- include: [...tsconfigResult.value.include, HIDDEN_AUXX_DIRECTORY],
31
+ include: [
32
+ ...tsconfigResult.value.include.filter((entry) => entry !== HIDDEN_AUXX_DIRECTORY),
33
+ AUXX_INCLUDE_GLOB,
34
+ ],
31
35
  };
32
36
  const writeResult = await fromPromise(fs.writeFile(tsconfigPath, JSON.stringify(updatedTsconfig, null, 2)));
33
37
  if (isErrored(writeResult)) {
@@ -43,6 +43,7 @@ export async function compileAndExtractCatalog() {
43
43
  const SDK_REAL_BARE = path.join(SDK_ROOT, 'lib', 'root', 'index.js');
44
44
  const SDK_REAL_TOOLS = path.join(SDK_ROOT, 'lib', 'root', 'tools', 'index.js');
45
45
  const SDK_REAL_WORKFLOW = path.join(SDK_ROOT, 'lib', 'root', 'workflow', 'index.js');
46
+ const SDK_REAL_FIELDS = path.join(SDK_ROOT, 'lib', 'root', 'fields', 'index.js');
46
47
  const stubSdkSubpaths = {
47
48
  name: 'auxx-stub-sdk-subpaths',
48
49
  setup(build) {
@@ -53,6 +54,8 @@ export async function compileAndExtractCatalog() {
53
54
  return { path: SDK_REAL_TOOLS };
54
55
  if (args.path === '@auxx/sdk/workflow')
55
56
  return { path: SDK_REAL_WORKFLOW };
57
+ if (args.path === '@auxx/sdk/fields')
58
+ return { path: SDK_REAL_FIELDS };
56
59
  return { path: args.path, namespace: 'auxx-sdk-stub' };
57
60
  });
58
61
  build.onLoad({ filter: /.*/, namespace: 'auxx-sdk-stub' }, () => ({
@@ -116,10 +119,12 @@ export async function compileAndExtractCatalog() {
116
119
  const toolsetsArr = (app.toolsets ?? []);
117
120
  const workflowBlocksArr = (app.workflow?.blocks ?? []);
118
121
  const workflowTriggersArr = (app.workflow?.triggers ?? []);
122
+ const fieldsArr = (app.fields ?? []);
119
123
  if (!toolsArr.length &&
120
124
  !toolsetsArr.length &&
121
125
  !workflowBlocksArr.length &&
122
- !workflowTriggersArr.length) {
126
+ !workflowTriggersArr.length &&
127
+ !fieldsArr.length) {
123
128
  return complete(undefined);
124
129
  }
125
130
  const { zodToProviderToolSchema } = await import('../build/server/zod-to-provider-tool-schema.js');
@@ -160,6 +165,9 @@ export async function compileAndExtractCatalog() {
160
165
  timeoutMs: tool.config?.timeout ?? 15000,
161
166
  streaming: Boolean(tool.agent?.streaming ?? tool.config?.streaming),
162
167
  refs: outputs.refs,
168
+ ...(tool.exampleOutput !== undefined
169
+ ? { exampleOutput: JSON.parse(JSON.stringify(tool.exampleOutput)) }
170
+ : {}),
163
171
  };
164
172
  cataloguedTools.push(baseTool);
165
173
  if (tool.agent) {
@@ -170,6 +178,9 @@ export async function compileAndExtractCatalog() {
170
178
  agentDescription: tool.agent.description ?? tool.description,
171
179
  toolsetSlug,
172
180
  idempotent: tool.agent.idempotent ?? tool.config?.idempotent,
181
+ surfaces: tool.agent.surfaces,
182
+ externalSafe: tool.agent.externalSafe,
183
+ inputBindings: tool.agent.inputBindings,
173
184
  });
174
185
  }
175
186
  if (tool.action) {
@@ -241,6 +252,33 @@ export async function compileAndExtractCatalog() {
241
252
  refs: [],
242
253
  });
243
254
  }
255
+ const cataloguedFields = [];
256
+ const seenFieldKeys = new Set();
257
+ for (const field of fieldsArr) {
258
+ if (!field?.appFieldKey) {
259
+ return errored({ code: 'CATALOG_VALIDATION_FAILED', message: 'Field is missing appFieldKey' });
260
+ }
261
+ const dedupeKey = `${field.targetEntity}:${field.appFieldKey}`;
262
+ if (seenFieldKeys.has(dedupeKey)) {
263
+ return errored({
264
+ code: 'CATALOG_VALIDATION_FAILED',
265
+ message: `Duplicate field "${field.appFieldKey}" on entity "${field.targetEntity}"`,
266
+ });
267
+ }
268
+ seenFieldKeys.add(dedupeKey);
269
+ cataloguedFields.push({
270
+ appFieldKey: field.appFieldKey,
271
+ scope: field.scope,
272
+ targetEntity: field.targetEntity,
273
+ type: field.type,
274
+ name: field.name,
275
+ description: field.description,
276
+ options: field.options,
277
+ relationship: field.relationship,
278
+ calc: field.calc,
279
+ capabilities: field.capabilities,
280
+ });
281
+ }
244
282
  const catalog = {
245
283
  tools: cataloguedTools,
246
284
  triggers: cataloguedTriggers,
@@ -255,6 +293,7 @@ export async function compileAndExtractCatalog() {
255
293
  toolsets: cataloguedToolsets,
256
294
  },
257
295
  actions: cataloguedActions,
296
+ fields: cataloguedFields,
258
297
  };
259
298
  try {
260
299
  JSON.stringify(catalog);
@@ -0,0 +1,26 @@
1
+ import chalk from 'chalk';
2
+ import { HIDDEN_AUXX_DIRECTORY } from '../constants/hidden-auxx-directory.js';
3
+ import { isErrored } from '../errors.js';
4
+ import { addAuxxHiddenDirectoryToTsConfig } from './add-auxx-hidden-directory-to-ts-config.js';
5
+ import { generateAppFieldsTypes } from './generate-app-fields-types.js';
6
+ import { isAppExportTypeAnnotated } from './warn-if-app-type-annotated.js';
7
+ export async function ensureAppFieldsTypes() {
8
+ if (await isAppExportTypeAnnotated()) {
9
+ process.stderr.write(chalk.yellow('⚠ Your `app` export is annotated `: App`, which erases field literals — ' +
10
+ 'typed value I/O (@auxx/sdk/server) will fall back to permissive types. ' +
11
+ 'Use `satisfies App` (or no annotation) to keep `setFieldValues`/`getFieldValue` narrowed.\n'));
12
+ }
13
+ const tsconfigResult = await addAuxxHiddenDirectoryToTsConfig();
14
+ if (isErrored(tsconfigResult)) {
15
+ process.stderr.write(chalk.yellow(`⚠ Could not add the ${HIDDEN_AUXX_DIRECTORY} directory to tsconfig "include". ` +
16
+ 'Typed field values may not be picked up.\n'));
17
+ }
18
+ const generateResult = await generateAppFieldsTypes();
19
+ if (isErrored(generateResult)) {
20
+ process.stderr.write(chalk.yellow(`⚠ Could not generate .auxx/app-fields.d.ts at ${generateResult.error.path}. ` +
21
+ 'Field value I/O will use permissive types.\n'));
22
+ }
23
+ else if (generateResult.value === 'skipped_unmanaged') {
24
+ process.stderr.write(chalk.yellow('⚠ Skipping .auxx/app-fields.d.ts generation because the existing file is unmanaged.\n'));
25
+ }
26
+ }
@@ -0,0 +1,63 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { APP_FIELDS_TYPES_FILENAME } from '../constants/app-fields-files.js';
4
+ import { HIDDEN_AUXX_DIRECTORY } from '../constants/hidden-auxx-directory.js';
5
+ import { complete, errored } from '../errors.js';
6
+ const GENERATED_MARKER = '// Auto-generated by auxx CLI. Do not edit.';
7
+ const APP_FIELDS_TYPES_FILE_CONTENT = `// .auxx/${APP_FIELDS_TYPES_FILENAME}
8
+ ${GENERATED_MARKER}
9
+ import '@auxx/sdk/server'
10
+ import type { app } from '../src/app'
11
+
12
+ type __AppFields = typeof app extends { fields: infer F } ? F : []
13
+
14
+ declare module '@auxx/sdk/server' {
15
+ export interface AppOwnedFieldRegistry {
16
+ fields: __AppFields
17
+ }
18
+ }
19
+ `;
20
+ export async function generateAppFieldsTypes(rootDirAbsolute = path.resolve('.')) {
21
+ const hiddenDirAbsolute = path.join(rootDirAbsolute, HIDDEN_AUXX_DIRECTORY);
22
+ const typesFilePath = path.join(hiddenDirAbsolute, APP_FIELDS_TYPES_FILENAME);
23
+ try {
24
+ await fs.mkdir(hiddenDirAbsolute, { recursive: true });
25
+ }
26
+ catch {
27
+ return errored({ code: 'FAILED_TO_CREATE_HIDDEN_DIRECTORY', path: hiddenDirAbsolute });
28
+ }
29
+ let existingContent = null;
30
+ try {
31
+ existingContent = await fs.readFile(typesFilePath, 'utf8');
32
+ }
33
+ catch (error) {
34
+ if (typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT') {
35
+ existingContent = null;
36
+ }
37
+ else {
38
+ return errored({ code: 'FAILED_TO_READ_APP_FIELDS_TYPES_FILE', path: typesFilePath });
39
+ }
40
+ }
41
+ if (existingContent === null) {
42
+ try {
43
+ await fs.writeFile(typesFilePath, APP_FIELDS_TYPES_FILE_CONTENT, 'utf8');
44
+ return complete('created');
45
+ }
46
+ catch {
47
+ return errored({ code: 'FAILED_TO_WRITE_APP_FIELDS_TYPES_FILE', path: typesFilePath });
48
+ }
49
+ }
50
+ if (existingContent === APP_FIELDS_TYPES_FILE_CONTENT) {
51
+ return complete('unchanged');
52
+ }
53
+ if (!existingContent.includes(GENERATED_MARKER)) {
54
+ return complete('skipped_unmanaged');
55
+ }
56
+ try {
57
+ await fs.writeFile(typesFilePath, APP_FIELDS_TYPES_FILE_CONTENT, 'utf8');
58
+ return complete('updated');
59
+ }
60
+ catch {
61
+ return errored({ code: 'FAILED_TO_WRITE_APP_FIELDS_TYPES_FILE', path: typesFilePath });
62
+ }
63
+ }
@@ -0,0 +1,9 @@
1
+ import path from 'path';
2
+ import { getAppEntryPoint } from './get-app-entry-point.js';
3
+ export async function isAppExportTypeAnnotated(rootDirAbsolute = path.resolve('.')) {
4
+ const entryPoint = await getAppEntryPoint(path.join(rootDirAbsolute, 'src'));
5
+ if (entryPoint === null) {
6
+ return false;
7
+ }
8
+ return /export\s+const\s+app\s*:\s*App\b/.test(entryPoint.content);
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auxx/sdk",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "description": "CLI tool and SDK for creating Auxx apps",
5
5
  "type": "module",
6
6
  "bin": {
@@ -42,6 +42,10 @@
42
42
  "types": "./lib/root/tools/index.d.ts",
43
43
  "import": "./lib/root/tools/index.js"
44
44
  },
45
+ "./fields": {
46
+ "types": "./lib/root/fields/index.d.ts",
47
+ "import": "./lib/root/fields/index.js"
48
+ },
45
49
  "./shared": {
46
50
  "types": "./lib/shared/index.d.ts",
47
51
  "import": "./lib/shared/index.js"
@@ -1,8 +1,12 @@
1
1
  // src/events/connection-added.event.ts
2
2
  import { createWebhookHandler, updateWebhookHandler } from '@auxx/sdk/server'
3
- import type { Connection } from '@auxx/sdk/server'
3
+ import type { Connection, ConnectionAddedResult } from '@auxx/sdk/server'
4
4
 
5
- export default async function connectionAdded({ connection }: { connection: Connection }) {
5
+ export default async function connectionAdded({
6
+ connection,
7
+ }: {
8
+ connection: Connection
9
+ }): Promise<ConnectionAddedResult> {
6
10
  // You can create multiple webhook handlers for the same file
7
11
  const webhookHandler = await createWebhookHandler({
8
12
  fileName: 'example',
@@ -31,4 +35,15 @@ export default async function connectionAdded({ connection }: { connection: Conn
31
35
  await updateWebhookHandler(webhookHandler.id, {
32
36
  externalWebhookId: 'someId', //body.webhookId,
33
37
  })
38
+
39
+ // Optionally name this connection so it's recognizable in the connections
40
+ // list (otherwise it falls back to the app name, e.g. "Acme (2)"). Use
41
+ // whatever identifies the account — the authenticated email, a workspace
42
+ // name, a shop domain, etc. Returning nothing keeps the default label.
43
+ // const profile = await fetch('https://api.acmeinc.com/me', {
44
+ // headers: { Authorization: `Bearer ${connection.value}` },
45
+ // }).then((r) => r.json())
46
+ // return { label: profile.email }
47
+
48
+ return {}
34
49
  }
@@ -38,5 +38,5 @@
38
38
  "types": ["@auxx/sdk/client"]
39
39
  },
40
40
  "exclude": ["node_modules"],
41
- "include": ["src", ".auxx"]
41
+ "include": ["src", ".auxx/**/*"]
42
42
  }