@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.
- package/lib/api/api.js +2 -1
- package/lib/api/schemas.js +3 -0
- package/lib/auth/auth.js +3 -0
- package/lib/commands/build/validate-typescript.js +33 -2
- package/lib/commands/build.js +3 -26
- package/lib/commands/dev.js +2 -0
- package/lib/commands/version/create/bundle-javascript.js +7 -1
- package/lib/commands/version/create.js +35 -2
- package/lib/constants/app-fields-files.js +1 -0
- package/lib/env.js +1 -0
- package/lib/root/app.d.ts +2 -0
- package/lib/root/app.d.ts.map +1 -1
- package/lib/root/fields/define-field.d.ts +67 -0
- package/lib/root/fields/define-field.d.ts.map +1 -0
- package/lib/root/fields/define-field.js +21 -0
- package/lib/root/fields/field-types.d.ts +47 -0
- package/lib/root/fields/field-types.d.ts.map +1 -0
- package/lib/root/fields/field-types.js +25 -0
- package/lib/root/fields/index.d.ts +3 -0
- package/lib/root/fields/index.d.ts.map +1 -0
- package/lib/root/fields/index.js +2 -0
- package/lib/root/index.d.ts +1 -0
- package/lib/root/index.d.ts.map +1 -1
- package/lib/root/index.js +1 -0
- package/lib/root/tools/define-tool.d.ts.map +1 -1
- package/lib/root/tools/define-tool.js +14 -0
- package/lib/root/tools/types.d.ts +16 -22
- package/lib/root/tools/types.d.ts.map +1 -1
- package/lib/root/workflow/types.d.ts +1 -0
- package/lib/root/workflow/types.d.ts.map +1 -1
- package/lib/runtime/workflow.js +2 -2
- package/lib/server/connections.d.ts +4 -0
- package/lib/server/connections.d.ts.map +1 -1
- package/lib/server/entities.d.ts +44 -0
- package/lib/server/entities.d.ts.map +1 -0
- package/lib/server/entities.js +3 -0
- package/lib/server/index.d.ts +2 -1
- package/lib/server/index.d.ts.map +1 -1
- package/lib/server/storage.d.ts +30 -3
- package/lib/server/storage.d.ts.map +1 -1
- package/lib/shared/errors.d.ts +30 -0
- package/lib/shared/errors.d.ts.map +1 -1
- package/lib/shared/errors.js +48 -0
- package/lib/shared/index.d.ts +1 -1
- package/lib/shared/index.d.ts.map +1 -1
- package/lib/shared/index.js +1 -1
- package/lib/util/add-auxx-hidden-directory-to-ts-config.js +6 -2
- package/lib/util/compile-and-extract-catalog.js +40 -1
- package/lib/util/ensure-app-fields-types.js +26 -0
- package/lib/util/generate-app-fields-types.js +63 -0
- package/lib/util/warn-if-app-type-annotated.js +9 -0
- package/package.json +5 -1
- package/template/src/events/connection-added.event.ts +17 -2
- 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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"}
|
package/lib/runtime/workflow.js
CHANGED
|
@@ -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;
|
|
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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"}
|
package/lib/server/index.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/lib/server/storage.d.ts
CHANGED
|
@@ -1,4 +1,31 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
|
|
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":"
|
|
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"}
|
package/lib/shared/errors.d.ts
CHANGED
|
@@ -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"}
|
package/lib/shared/errors.js
CHANGED
|
@@ -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) {
|
package/lib/shared/index.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/lib/shared/index.js
CHANGED
|
@@ -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(
|
|
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: [
|
|
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.
|
|
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({
|
|
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
|
}
|
package/template/tsconfig.json
CHANGED