@auxx/sdk 0.0.9 → 0.0.11

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 (75) hide show
  1. package/assets.d.ts +27 -0
  2. package/client.d.ts +2 -0
  3. package/global.d.ts +0 -6
  4. package/lib/build/server/generate-server-entry.js +2 -2
  5. package/lib/build/workflow-block-modules.js +5 -0
  6. package/lib/client/workflow/components/fields/var-input.d.ts +3 -1
  7. package/lib/client/workflow/components/fields/var-input.d.ts.map +1 -1
  8. package/lib/client/workflow/components/index.d.ts +1 -0
  9. package/lib/client/workflow/components/index.d.ts.map +1 -1
  10. package/lib/client/workflow/components/inputs/array-input.d.ts +13 -0
  11. package/lib/client/workflow/components/inputs/array-input.d.ts.map +1 -0
  12. package/lib/client/workflow/components/inputs/array-input.js +3 -0
  13. package/lib/client/workflow/hooks/index.d.ts +1 -0
  14. package/lib/client/workflow/hooks/index.d.ts.map +1 -1
  15. package/lib/client/workflow/hooks/use-array-item.d.ts +10 -0
  16. package/lib/client/workflow/hooks/use-array-item.d.ts.map +1 -0
  17. package/lib/client/workflow/hooks/use-array-item.js +3 -0
  18. package/lib/client/workflow/hooks/use-workflow.d.ts +27 -1
  19. package/lib/client/workflow/hooks/use-workflow.d.ts.map +1 -1
  20. package/lib/client/workflow/types/path-helpers.d.ts +3 -1
  21. package/lib/client/workflow/types/path-helpers.d.ts.map +1 -1
  22. package/lib/commands/build.js +8 -0
  23. package/lib/commands/dev/client-builder.js +9 -1
  24. package/lib/commands/dev/server-builder.js +9 -0
  25. package/lib/commands/dev.js +8 -0
  26. package/lib/commands/init/create-project.js +8 -0
  27. package/lib/print-errors.js +6 -3
  28. package/lib/root/schema/index.d.ts +1 -1
  29. package/lib/root/schema/index.d.ts.map +1 -1
  30. package/lib/root/schema/index.js +1 -1
  31. package/lib/root/schema/string-node.d.ts +2 -1
  32. package/lib/root/schema/string-node.d.ts.map +1 -1
  33. package/lib/root/schema/string-node.js +6 -0
  34. package/lib/root/workflow/base-node.js +3 -3
  35. package/lib/root/workflow/index.d.ts +12 -7
  36. package/lib/root/workflow/index.d.ts.map +1 -1
  37. package/lib/root/workflow/index.js +8 -4
  38. package/lib/root/workflow/input-nodes.d.ts +95 -29
  39. package/lib/root/workflow/input-nodes.d.ts.map +1 -1
  40. package/lib/root/workflow/input-nodes.js +96 -1
  41. package/lib/root/workflow/types.d.ts +21 -1
  42. package/lib/root/workflow/types.d.ts.map +1 -1
  43. package/lib/root/workflow/types.js +3 -0
  44. package/lib/runtime/reconciler/tags/index.d.ts +3 -0
  45. package/lib/runtime/reconciler/tags/index.d.ts.map +1 -1
  46. package/lib/runtime/reconciler/tags/index.js +9 -0
  47. package/lib/runtime/reconciler/tags/workflow-array-input-tag.d.ts +7 -0
  48. package/lib/runtime/reconciler/tags/workflow-array-input-tag.d.ts.map +1 -0
  49. package/lib/runtime/reconciler/tags/workflow-array-input-tag.js +13 -0
  50. package/lib/runtime/reconciler/tags/workflow-field-divider-tag.d.ts +7 -0
  51. package/lib/runtime/reconciler/tags/workflow-field-divider-tag.d.ts.map +1 -0
  52. package/lib/runtime/reconciler/tags/workflow-field-divider-tag.js +12 -0
  53. package/lib/runtime/reconciler/tags/workflow-field-row-tag.d.ts +7 -0
  54. package/lib/runtime/reconciler/tags/workflow-field-row-tag.d.ts.map +1 -0
  55. package/lib/runtime/reconciler/tags/workflow-field-row-tag.js +12 -0
  56. package/lib/runtime/reconciler/tags/workflow-var-input-tag.d.ts.map +1 -1
  57. package/lib/runtime/reconciler/tags/workflow-var-input-tag.js +4 -1
  58. package/lib/runtime/workflow.d.ts +1 -0
  59. package/lib/runtime/workflow.d.ts.map +1 -1
  60. package/lib/runtime/workflow.js +52 -30
  61. package/lib/server/webhooks.d.ts +3 -0
  62. package/lib/server/webhooks.d.ts.map +1 -1
  63. package/lib/server/workflow/index.d.ts +1 -0
  64. package/lib/server/workflow/index.d.ts.map +1 -1
  65. package/lib/shared/errors.d.ts +13 -0
  66. package/lib/shared/errors.d.ts.map +1 -1
  67. package/lib/shared/errors.js +15 -0
  68. package/lib/shared/index.d.ts +1 -1
  69. package/lib/shared/index.d.ts.map +1 -1
  70. package/lib/shared/index.js +1 -1
  71. package/lib/shared/validation.d.ts +6 -6
  72. package/lib/shared/validation.js +2 -2
  73. package/lib/util/generate-app-env-types.js +66 -0
  74. package/package.json +5 -1
  75. package/template/src/auxx-env.d.ts +4 -0
@@ -79,6 +79,9 @@ function serializeFields(fields, kind) {
79
79
  integer: metadata.integer,
80
80
  precision: metadata.precision,
81
81
  options: metadata.options,
82
+ multi: metadata.multi,
83
+ canAdd: metadata.canAdd,
84
+ canManage: metadata.canManage,
82
85
  _fieldKind: kind,
83
86
  };
84
87
  if (!field.type) {
@@ -153,6 +156,9 @@ function serializeFieldsFromJSON(fields, kind) {
153
156
  integer: metadata.integer,
154
157
  precision: metadata.precision,
155
158
  options: metadata.options,
159
+ multi: metadata.multi,
160
+ canAdd: metadata.canAdd,
161
+ canManage: metadata.canManage,
156
162
  _fieldKind: kind,
157
163
  };
158
164
  if (!field.type) {
@@ -175,7 +181,7 @@ function serializeFieldsFromJSON(fields, kind) {
175
181
  function serializeNestedField(fieldJson, kind) {
176
182
  const metadata = fieldJson._metadata || {};
177
183
  const field = {
178
- name: '',
184
+ name: metadata.label || 'item',
179
185
  label: metadata.label || '',
180
186
  type: fieldJson.type,
181
187
  description: metadata.description,
@@ -189,6 +195,9 @@ function serializeNestedField(fieldJson, kind) {
189
195
  integer: metadata.integer,
190
196
  precision: metadata.precision,
191
197
  options: metadata.options,
198
+ multi: metadata.multi,
199
+ canAdd: metadata.canAdd,
200
+ canManage: metadata.canManage,
192
201
  _fieldKind: kind,
193
202
  };
194
203
  if (!field.type) {
@@ -219,34 +228,39 @@ function resolveBlockIcon(icon) {
219
228
  }
220
229
  export function getWorkflowBlocks() {
221
230
  const surfaces = SURFACES.getAll();
222
- const workflowBlockSurfaces = surfaces.filter((s) => s.type === 'workflow-block');
223
- const blocks = workflowBlockSurfaces
224
- .map((surface) => {
225
- const fullBlock = surface.block;
226
- if (!fullBlock)
227
- return null;
228
- const metadata = {
229
- id: fullBlock.id,
230
- label: fullBlock.label,
231
- description: fullBlock.description,
232
- category: fullBlock.category,
233
- icon: resolveBlockIcon(fullBlock.icon),
234
- color: fullBlock.color,
235
- config: fullBlock.config,
231
+ const workflowBlockSurfaces = surfaces.filter((s) => s.type === 'workflow-block' && s.blockType !== 'trigger');
232
+ return workflowBlockSurfaces
233
+ .map(serializeBlockSurface)
234
+ .filter((b) => b !== null);
235
+ }
236
+ export function getWorkflowTriggers() {
237
+ const surfaces = SURFACES.getAll();
238
+ const triggerSurfaces = surfaces.filter((s) => s.type === 'workflow-block' && s.blockType === 'trigger');
239
+ return triggerSurfaces.map(serializeBlockSurface).filter((b) => b !== null);
240
+ }
241
+ function serializeBlockSurface(surface) {
242
+ const fullBlock = surface.block;
243
+ if (!fullBlock)
244
+ return null;
245
+ const metadata = {
246
+ id: fullBlock.id,
247
+ label: fullBlock.label,
248
+ description: fullBlock.description,
249
+ category: fullBlock.category,
250
+ icon: resolveBlockIcon(fullBlock.icon),
251
+ color: fullBlock.color,
252
+ config: fullBlock.config,
253
+ };
254
+ if (fullBlock.schema) {
255
+ metadata.schema = {
256
+ inputs: serializeFields(fullBlock.schema.inputs || {}, 'input'),
257
+ outputs: serializeFields(fullBlock.schema.outputs || {}, 'output'),
258
+ handles: fullBlock.schema.handles || { sources: [], targets: [] },
259
+ layout: fullBlock.schema.layout,
236
260
  };
237
- if (fullBlock.schema) {
238
- metadata.schema = {
239
- inputs: serializeFields(fullBlock.schema.inputs || {}, 'input'),
240
- outputs: serializeFields(fullBlock.schema.outputs || {}, 'output'),
241
- handles: fullBlock.schema.handles || { sources: [], targets: [] },
242
- layout: fullBlock.schema.layout,
243
- };
244
- }
245
- metadata.hasPanel = !!fullBlock.panel;
246
- return metadata;
247
- })
248
- .filter(Boolean);
249
- return blocks;
261
+ }
262
+ metadata.hasPanel = !!fullBlock.panel;
263
+ return metadata;
250
264
  }
251
265
  function getWorkflowBlock(blockId) {
252
266
  const surfaces = SURFACES.getAll();
@@ -455,7 +469,7 @@ function serializeComputedOutputs(outputs) {
455
469
  if (fieldNode && typeof fieldNode.toJSON === 'function') {
456
470
  const json = fieldNode.toJSON();
457
471
  const metadata = json._metadata || {};
458
- result[key] = {
472
+ const field = {
459
473
  name: key,
460
474
  label: metadata.label || key,
461
475
  type: json.type || 'any',
@@ -463,6 +477,13 @@ function serializeComputedOutputs(outputs) {
463
477
  required: metadata.required,
464
478
  _fieldKind: 'output',
465
479
  };
480
+ if ((json.type === 'object' || json.type === 'struct') && json.fields) {
481
+ field.properties = serializeFieldsFromJSON(json.fields, 'output');
482
+ }
483
+ if (json.type === 'array' && json.items) {
484
+ field.items = serializeNestedField(json.items, 'output');
485
+ }
486
+ result[key] = field;
466
487
  }
467
488
  else if (fieldNode && typeof fieldNode === 'object' && fieldNode.type) {
468
489
  result[key] = { name: key, ...fieldNode };
@@ -472,7 +493,8 @@ function serializeComputedOutputs(outputs) {
472
493
  }
473
494
  Host.onRequest('get-workflow-blocks', async () => {
474
495
  const blocks = getWorkflowBlocks();
475
- return { blocks };
496
+ const triggers = getWorkflowTriggers();
497
+ return { blocks, triggers };
476
498
  });
477
499
  Host.onRequest('render-workflow-node', async (data) => {
478
500
  return await renderWorkflowNode(data.blockId, data.nodeId, data.data);
@@ -3,10 +3,13 @@ export interface WebhookHandler {
3
3
  url: string;
4
4
  fileName: string;
5
5
  externalWebhookId?: string;
6
+ connectionId?: string;
6
7
  metadata?: Record<string, unknown>;
7
8
  }
8
9
  export declare function createWebhookHandler(options: {
9
10
  fileName: string;
11
+ triggerId?: string;
12
+ connectionId?: string;
10
13
  metadata?: Record<string, unknown>;
11
14
  }): Promise<WebhookHandler>;
12
15
  export declare function updateWebhookHandler(handlerId: string, updates: {
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/server/webhooks.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAE7B,EAAE,EAAE,MAAM,CAAA;IAGV,GAAG,EAAE,MAAM,CAAA;IAGX,QAAQ,EAAE,MAAM,CAAA;IAGhB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AA8BD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,GAAG,OAAO,CAAC,cAAc,CAAC,CAU1B;AAwBD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,GACA,OAAO,CAAC,IAAI,CAAC,CASf;AAOD,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3E;AAuBD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CASrE"}
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/server/webhooks.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAE7B,EAAE,EAAE,MAAM,CAAA;IAGV,GAAG,EAAE,MAAM,CAAA;IAGX,QAAQ,EAAE,MAAM,CAAA;IAGhB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAG1B,YAAY,CAAC,EAAE,MAAM,CAAA;IAGrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AA8BD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,GAAG,OAAO,CAAC,cAAc,CAAC,CAU1B;AAwBD,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IACP,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,GACA,OAAO,CAAC,IAAI,CAAC,CASf;AAOD,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3E;AAuBD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CASrE"}
@@ -1,3 +1,4 @@
1
+ export type { PollingExecuteResult, PollingState } from '../../root/workflow/types.js';
1
2
  export interface WorkflowInput {
2
3
  id: string;
3
4
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/workflow/index.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAE5B,EAAE,EAAE,MAAM,CAAA;IAEV,KAAK,EAAE,MAAM,CAAA;IAEb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IAEvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,YAAY,CAAC,EAAE,GAAG,CAAA;IAElB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAKD,MAAM,WAAW,cAAc;IAE7B,EAAE,EAAE,MAAM,CAAA;IAEV,KAAK,EAAE,MAAM,CAAA;IAEb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IAEvD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAKD,MAAM,WAAW,eAAe;IAE9B,WAAW,EAAE,MAAM,CAAA;IAEnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE3B,QAAQ,EAAE;QAER,UAAU,EAAE,MAAM,CAAA;QAElB,OAAO,CAAC,EAAE,MAAM,CAAA;QAEhB,SAAS,EAAE,IAAI,CAAA;KAChB,CAAA;CACF;AAyBD,MAAM,WAAW,cAAc;IAE7B,KAAK,EAAE,MAAM,CAAA;IAEb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE3B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/workflow/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAKtF,MAAM,WAAW,aAAa;IAE5B,EAAE,EAAE,MAAM,CAAA;IAEV,KAAK,EAAE,MAAM,CAAA;IAEb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IAEvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,YAAY,CAAC,EAAE,GAAG,CAAA;IAElB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAKD,MAAM,WAAW,cAAc;IAE7B,EAAE,EAAE,MAAM,CAAA;IAEV,KAAK,EAAE,MAAM,CAAA;IAEb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;IAEvD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAKD,MAAM,WAAW,eAAe;IAE9B,WAAW,EAAE,MAAM,CAAA;IAEnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE3B,QAAQ,EAAE;QAER,UAAU,EAAE,MAAM,CAAA;QAElB,OAAO,CAAC,EAAE,MAAM,CAAA;QAEhB,SAAS,EAAE,IAAI,CAAA;KAChB,CAAA;CACF;AAyBD,MAAM,WAAW,cAAc;IAE7B,KAAK,EAAE,MAAM,CAAA;IAEb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE3B,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD"}
@@ -29,4 +29,17 @@ export declare class AuxxNoOrganizationConnectionError extends AuxxError {
29
29
  export declare class AuxxUnexpectedTransportError extends AuxxError {
30
30
  constructor();
31
31
  }
32
+ export declare class BlockValidationError extends AuxxError {
33
+ readonly fields: Array<{
34
+ field: string;
35
+ message: string;
36
+ }>;
37
+ constructor(fields: Array<{
38
+ field: string;
39
+ message: string;
40
+ }> | string);
41
+ }
42
+ export declare class BlockRuntimeError extends AuxxError {
43
+ constructor(message: string, code?: string);
44
+ }
32
45
  //# sourceMappingURL=errors.d.ts.map
@@ -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"}
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;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"}
@@ -60,3 +60,18 @@ export class AuxxUnexpectedTransportError extends AuxxError {
60
60
  this.name = 'AuxxUnexpectedTransportError';
61
61
  }
62
62
  }
63
+ export class BlockValidationError extends AuxxError {
64
+ fields;
65
+ constructor(fields) {
66
+ const normalized = typeof fields === 'string' ? [{ field: '', message: fields }] : fields;
67
+ super(normalized.map((f) => f.message).join('; '), 'BLOCK_VALIDATION_ERROR');
68
+ this.name = 'BlockValidationError';
69
+ this.fields = normalized;
70
+ }
71
+ }
72
+ export class BlockRuntimeError extends AuxxError {
73
+ constructor(message, code) {
74
+ super(message, code ?? 'BLOCK_RUNTIME_ERROR');
75
+ this.name = 'BlockRuntimeError';
76
+ }
77
+ }
@@ -1,4 +1,4 @@
1
- export { AuxxError, AuxxNoOrganizationConnectionError, AuxxNoUserConnectionError, AuxxUnexpectedTransportError, ExtensionInitError, ExtensionLoadError, MessageError, RenderError, ServerFunctionError, SurfaceError, } from './errors.js';
1
+ export { AuxxError, AuxxNoOrganizationConnectionError, AuxxNoUserConnectionError, AuxxUnexpectedTransportError, BlockRuntimeError, BlockValidationError, ExtensionInitError, ExtensionLoadError, MessageError, RenderError, ServerFunctionError, SurfaceError, } 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,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,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,3 +1,3 @@
1
- export { AuxxError, AuxxNoOrganizationConnectionError, AuxxNoUserConnectionError, AuxxUnexpectedTransportError, ExtensionInitError, ExtensionLoadError, MessageError, RenderError, ServerFunctionError, SurfaceError, } from './errors.js';
1
+ export { AuxxError, AuxxNoOrganizationConnectionError, AuxxNoUserConnectionError, AuxxUnexpectedTransportError, BlockRuntimeError, BlockValidationError, ExtensionInitError, ExtensionLoadError, MessageError, RenderError, ServerFunctionError, SurfaceError, } 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';
@@ -47,8 +47,8 @@ export declare const environmentSchema: z.ZodObject<{
47
47
  organizationId: z.ZodString;
48
48
  organizationHandle: z.ZodString;
49
49
  organizationName: z.ZodString;
50
- userId: z.ZodString;
51
- userName: z.ZodString;
50
+ userId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ userName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
52
  userEmail: z.ZodOptional<z.ZodNullable<z.ZodString>>;
53
53
  apiUrl: z.ZodString;
54
54
  platform: z.ZodEnum<["web-app", "mobile-app"]>;
@@ -59,11 +59,11 @@ export declare const environmentSchema: z.ZodObject<{
59
59
  organizationId: string;
60
60
  organizationHandle: string;
61
61
  organizationName: string;
62
- userId: string;
63
- userName: string;
64
62
  apiUrl: string;
65
63
  platform: "web-app" | "mobile-app";
66
64
  isDevelopment: boolean;
65
+ userId?: string | null | undefined;
66
+ userName?: string | null | undefined;
67
67
  userEmail?: string | null | undefined;
68
68
  }, {
69
69
  appId: string;
@@ -71,11 +71,11 @@ export declare const environmentSchema: z.ZodObject<{
71
71
  organizationId: string;
72
72
  organizationHandle: string;
73
73
  organizationName: string;
74
- userId: string;
75
- userName: string;
76
74
  apiUrl: string;
77
75
  platform: "web-app" | "mobile-app";
78
76
  isDevelopment: boolean;
77
+ userId?: string | null | undefined;
78
+ userName?: string | null | undefined;
79
79
  userEmail?: string | null | undefined;
80
80
  }>;
81
81
  export type ValidatedEnvironment = z.infer<typeof environmentSchema>;
@@ -24,8 +24,8 @@ export const environmentSchema = z.object({
24
24
  organizationId: z.string(),
25
25
  organizationHandle: z.string(),
26
26
  organizationName: z.string(),
27
- userId: z.string(),
28
- userName: z.string(),
27
+ userId: z.string().nullish(),
28
+ userName: z.string().nullish(),
29
29
  userEmail: z.string().email().nullish(),
30
30
  apiUrl: z.string().url(),
31
31
  platform: z.enum(['web-app', 'mobile-app']),
@@ -0,0 +1,66 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { complete, errored } from '../errors.js';
4
+ const GENERATED_MARKER = '// Auto-generated by auxx CLI. Do not edit.';
5
+ const APP_ENV_TYPES_RELATIVE_PATH = path.join('src', 'auxx-env.d.ts');
6
+ const APP_ENV_TYPES_FILE_CONTENT = `// src/auxx-env.d.ts
7
+ ${GENERATED_MARKER}
8
+ import '@auxx/sdk/client'
9
+ import '@auxx/sdk/global'
10
+ `;
11
+ export async function generateAppEnvTypes(rootDirAbsolute = path.resolve('.')) {
12
+ const srcDirAbsolute = path.join(rootDirAbsolute, 'src');
13
+ const envTypesFilePath = path.join(rootDirAbsolute, APP_ENV_TYPES_RELATIVE_PATH);
14
+ try {
15
+ await fs.mkdir(srcDirAbsolute, { recursive: true });
16
+ }
17
+ catch {
18
+ return errored({
19
+ code: 'FAILED_TO_CREATE_APP_SRC_DIRECTORY',
20
+ path: srcDirAbsolute,
21
+ });
22
+ }
23
+ let existingContent = null;
24
+ try {
25
+ existingContent = await fs.readFile(envTypesFilePath, 'utf8');
26
+ }
27
+ catch (error) {
28
+ if (typeof error === 'object' && error !== null && 'code' in error && error.code === 'ENOENT') {
29
+ existingContent = null;
30
+ }
31
+ else {
32
+ return errored({
33
+ code: 'FAILED_TO_READ_APP_ENV_TYPES_FILE',
34
+ path: envTypesFilePath,
35
+ });
36
+ }
37
+ }
38
+ if (existingContent === null) {
39
+ try {
40
+ await fs.writeFile(envTypesFilePath, APP_ENV_TYPES_FILE_CONTENT, 'utf8');
41
+ return complete('created');
42
+ }
43
+ catch {
44
+ return errored({
45
+ code: 'FAILED_TO_WRITE_APP_ENV_TYPES_FILE',
46
+ path: envTypesFilePath,
47
+ });
48
+ }
49
+ }
50
+ if (existingContent === APP_ENV_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(envTypesFilePath, APP_ENV_TYPES_FILE_CONTENT, 'utf8');
58
+ return complete('updated');
59
+ }
60
+ catch {
61
+ return errored({
62
+ code: 'FAILED_TO_WRITE_APP_ENV_TYPES_FILE',
63
+ path: envTypesFilePath,
64
+ });
65
+ }
66
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auxx/sdk",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "CLI tool and SDK for creating Auxx apps",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,6 +11,7 @@
11
11
  "template",
12
12
  "auxx.js",
13
13
  "client.d.ts",
14
+ "assets.d.ts",
14
15
  "server.d.ts",
15
16
  "global.d.ts",
16
17
  "root.d.ts",
@@ -27,6 +28,9 @@
27
28
  "./global": {
28
29
  "types": "./global.d.ts"
29
30
  },
31
+ "./globals": {
32
+ "types": "./global.d.ts"
33
+ },
30
34
  "./server": {
31
35
  "types": "./server.d.ts"
32
36
  },
@@ -0,0 +1,4 @@
1
+ // src/auxx-env.d.ts
2
+ // Auto-generated by auxx CLI. Do not edit.
3
+ import '@auxx/sdk/client'
4
+ import '@auxx/sdk/global'