@positronic/spec 0.0.55 → 0.0.57

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 (68) hide show
  1. package/dist/{api.d.ts → api/brains.d.ts} +2 -160
  2. package/dist/api/brains.d.ts.map +1 -0
  3. package/dist/{api.js → api/brains.js} +18 -1234
  4. package/dist/api/brains.js.map +1 -0
  5. package/dist/api/bundle.d.ts +17 -0
  6. package/dist/api/bundle.d.ts.map +1 -0
  7. package/dist/api/bundle.js +56 -0
  8. package/dist/api/bundle.js.map +1 -0
  9. package/dist/api/index.d.ts +12 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api/index.js +11 -0
  12. package/dist/api/index.js.map +1 -0
  13. package/dist/api/pages.d.ts +46 -0
  14. package/dist/api/pages.d.ts.map +1 -0
  15. package/dist/api/pages.js +338 -0
  16. package/dist/api/pages.js.map +1 -0
  17. package/dist/api/resources.d.ts +28 -0
  18. package/dist/api/resources.d.ts.map +1 -0
  19. package/dist/api/resources.js +272 -0
  20. package/dist/api/resources.js.map +1 -0
  21. package/dist/api/schedules.d.ts +20 -0
  22. package/dist/api/schedules.d.ts.map +1 -0
  23. package/dist/api/schedules.js +159 -0
  24. package/dist/api/schedules.js.map +1 -0
  25. package/dist/api/secrets.d.ts +27 -0
  26. package/dist/api/secrets.d.ts.map +1 -0
  27. package/dist/api/secrets.js +175 -0
  28. package/dist/api/secrets.js.map +1 -0
  29. package/dist/api/signals.d.ts +53 -0
  30. package/dist/api/signals.d.ts.map +1 -0
  31. package/dist/api/signals.js +276 -0
  32. package/dist/api/signals.js.map +1 -0
  33. package/dist/api/status.d.ts +3 -0
  34. package/dist/api/status.d.ts.map +1 -0
  35. package/dist/api/status.js +23 -0
  36. package/dist/api/status.js.map +1 -0
  37. package/dist/api/types.d.ts +2 -0
  38. package/dist/api/types.d.ts.map +1 -0
  39. package/dist/api/types.js +2 -0
  40. package/dist/api/types.js.map +1 -0
  41. package/dist/api/users.d.ts +43 -0
  42. package/dist/api/users.d.ts.map +1 -0
  43. package/dist/api/users.js +221 -0
  44. package/dist/api/users.js.map +1 -0
  45. package/dist/api/webhooks.d.ts +30 -0
  46. package/dist/api/webhooks.d.ts.map +1 -0
  47. package/dist/api/webhooks.js +208 -0
  48. package/dist/api/webhooks.js.map +1 -0
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +1 -1
  52. package/dist/index.js.map +1 -1
  53. package/dist/src/{api.js → api/brains.js} +1378 -4108
  54. package/dist/src/api/bundle.js +228 -0
  55. package/dist/src/api/index.js +10 -0
  56. package/dist/src/api/pages.js +840 -0
  57. package/dist/src/api/resources.js +707 -0
  58. package/dist/src/api/schedules.js +479 -0
  59. package/dist/src/api/secrets.js +518 -0
  60. package/dist/src/api/signals.js +778 -0
  61. package/dist/src/api/status.js +180 -0
  62. package/dist/src/api/types.js +1 -0
  63. package/dist/src/api/users.js +650 -0
  64. package/dist/src/api/webhooks.js +639 -0
  65. package/dist/src/index.js +1 -1
  66. package/package.json +1 -1
  67. package/dist/api.d.ts.map +0 -1
  68. package/dist/api.js.map +0 -1
@@ -0,0 +1,221 @@
1
+ export const users = {
2
+ /**
3
+ * Test POST /users - Create a new user
4
+ */
5
+ async create(fetch, name) {
6
+ try {
7
+ const request = new Request('http://example.com/users', {
8
+ method: 'POST',
9
+ headers: {
10
+ 'Content-Type': 'application/json',
11
+ },
12
+ body: JSON.stringify({ name }),
13
+ });
14
+ const response = await fetch(request);
15
+ if (response.status !== 201) {
16
+ console.error(`POST /users returned ${response.status}, expected 201`);
17
+ return null;
18
+ }
19
+ const data = (await response.json());
20
+ if (!data.id || typeof data.id !== 'string') {
21
+ console.error(`Expected id to be string, got ${typeof data.id}`);
22
+ return null;
23
+ }
24
+ if (data.name !== name) {
25
+ console.error(`Expected name to be '${name}', got ${data.name}`);
26
+ return null;
27
+ }
28
+ if (typeof data.createdAt !== 'number') {
29
+ console.error(`Expected createdAt to be number, got ${typeof data.createdAt}`);
30
+ return null;
31
+ }
32
+ return data.id;
33
+ }
34
+ catch (error) {
35
+ console.error(`Failed to test POST /users:`, error);
36
+ return null;
37
+ }
38
+ },
39
+ /**
40
+ * Test GET /users - List all users
41
+ */
42
+ async list(fetch) {
43
+ try {
44
+ const request = new Request('http://example.com/users', {
45
+ method: 'GET',
46
+ });
47
+ const response = await fetch(request);
48
+ if (!response.ok) {
49
+ console.error(`GET /users returned ${response.status}`);
50
+ return false;
51
+ }
52
+ const data = (await response.json());
53
+ if (!Array.isArray(data.users)) {
54
+ console.error(`Expected users to be an array, got ${typeof data.users}`);
55
+ return false;
56
+ }
57
+ if (typeof data.count !== 'number') {
58
+ console.error(`Expected count to be number, got ${typeof data.count}`);
59
+ return false;
60
+ }
61
+ // Validate each user has required fields
62
+ for (const user of data.users) {
63
+ if (!user.id ||
64
+ !user.name ||
65
+ typeof user.createdAt !== 'number') {
66
+ console.error(`User missing required fields: ${JSON.stringify(user)}`);
67
+ return false;
68
+ }
69
+ }
70
+ return true;
71
+ }
72
+ catch (error) {
73
+ console.error(`Failed to test GET /users:`, error);
74
+ return false;
75
+ }
76
+ },
77
+ /**
78
+ * Test GET /users/:id - Get a specific user
79
+ */
80
+ async get(fetch, userId) {
81
+ try {
82
+ const request = new Request(`http://example.com/users/${userId}`, {
83
+ method: 'GET',
84
+ });
85
+ const response = await fetch(request);
86
+ if (response.status === 404) {
87
+ return null;
88
+ }
89
+ if (!response.ok) {
90
+ console.error(`GET /users/${userId} returned ${response.status}`);
91
+ return null;
92
+ }
93
+ const data = (await response.json());
94
+ if (!data.id || !data.name || typeof data.createdAt !== 'number') {
95
+ console.error(`User missing required fields: ${JSON.stringify(data)}`);
96
+ return null;
97
+ }
98
+ return data;
99
+ }
100
+ catch (error) {
101
+ console.error(`Failed to test GET /users/${userId}:`, error);
102
+ return null;
103
+ }
104
+ },
105
+ /**
106
+ * Test DELETE /users/:id - Delete a user
107
+ */
108
+ async delete(fetch, userId) {
109
+ try {
110
+ const request = new Request(`http://example.com/users/${userId}`, {
111
+ method: 'DELETE',
112
+ });
113
+ const response = await fetch(request);
114
+ if (response.status !== 204) {
115
+ console.error(`DELETE /users/${userId} returned ${response.status}, expected 204`);
116
+ return false;
117
+ }
118
+ return true;
119
+ }
120
+ catch (error) {
121
+ console.error(`Failed to test DELETE /users/${userId}:`, error);
122
+ return false;
123
+ }
124
+ },
125
+ /**
126
+ * Test POST /users/:id/keys - Add a key to a user
127
+ */
128
+ async addKey(fetch, userId, jwk, fingerprint, label) {
129
+ try {
130
+ const request = new Request(`http://example.com/users/${userId}/keys`, {
131
+ method: 'POST',
132
+ headers: {
133
+ 'Content-Type': 'application/json',
134
+ },
135
+ body: JSON.stringify({ jwk, fingerprint, label: label || '' }),
136
+ });
137
+ const response = await fetch(request);
138
+ if (response.status !== 201) {
139
+ console.error(`POST /users/${userId}/keys returned ${response.status}, expected 201`);
140
+ return false;
141
+ }
142
+ const data = (await response.json());
143
+ if (data.fingerprint !== fingerprint) {
144
+ console.error(`Expected fingerprint to be '${fingerprint}', got ${data.fingerprint}`);
145
+ return false;
146
+ }
147
+ if (data.userId !== userId) {
148
+ console.error(`Expected userId to be '${userId}', got ${data.userId}`);
149
+ return false;
150
+ }
151
+ if (typeof data.addedAt !== 'number') {
152
+ console.error(`Expected addedAt to be number, got ${typeof data.addedAt}`);
153
+ return false;
154
+ }
155
+ return true;
156
+ }
157
+ catch (error) {
158
+ console.error(`Failed to test POST /users/${userId}/keys:`, error);
159
+ return false;
160
+ }
161
+ },
162
+ /**
163
+ * Test GET /users/:id/keys - List keys for a user
164
+ */
165
+ async listKeys(fetch, userId) {
166
+ try {
167
+ const request = new Request(`http://example.com/users/${userId}/keys`, {
168
+ method: 'GET',
169
+ });
170
+ const response = await fetch(request);
171
+ if (!response.ok) {
172
+ console.error(`GET /users/${userId}/keys returned ${response.status}`);
173
+ return false;
174
+ }
175
+ const data = (await response.json());
176
+ if (!Array.isArray(data.keys)) {
177
+ console.error(`Expected keys to be an array, got ${typeof data.keys}`);
178
+ return false;
179
+ }
180
+ if (typeof data.count !== 'number') {
181
+ console.error(`Expected count to be number, got ${typeof data.count}`);
182
+ return false;
183
+ }
184
+ // Validate each key has required fields
185
+ for (const key of data.keys) {
186
+ if (!key.fingerprint ||
187
+ !key.userId ||
188
+ typeof key.addedAt !== 'number') {
189
+ console.error(`Key missing required fields: ${JSON.stringify(key)}`);
190
+ return false;
191
+ }
192
+ }
193
+ return true;
194
+ }
195
+ catch (error) {
196
+ console.error(`Failed to test GET /users/${userId}/keys:`, error);
197
+ return false;
198
+ }
199
+ },
200
+ /**
201
+ * Test DELETE /users/:id/keys/:fingerprint - Remove a key from a user
202
+ */
203
+ async removeKey(fetch, userId, fingerprint) {
204
+ try {
205
+ const request = new Request(`http://example.com/users/${userId}/keys/${encodeURIComponent(fingerprint)}`, {
206
+ method: 'DELETE',
207
+ });
208
+ const response = await fetch(request);
209
+ if (response.status !== 204) {
210
+ console.error(`DELETE /users/${userId}/keys/${fingerprint} returned ${response.status}, expected 204`);
211
+ return false;
212
+ }
213
+ return true;
214
+ }
215
+ catch (error) {
216
+ console.error(`Failed to test DELETE /users/${userId}/keys/${fingerprint}:`, error);
217
+ return false;
218
+ }
219
+ },
220
+ };
221
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/api/users.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { Fetch } from './types.js';
2
+ export declare const webhooks: {
3
+ /**
4
+ * Test GET /webhooks - List all available webhook handlers
5
+ */
6
+ list(fetch: Fetch): Promise<boolean>;
7
+ /**
8
+ * Test POST /webhooks/:slug - Receive an incoming webhook from an external service
9
+ */
10
+ receive(fetch: Fetch, slug: string, payload: any): Promise<boolean>;
11
+ /**
12
+ * Test POST /webhooks/:slug with non-existent webhook - Should return 404
13
+ */
14
+ notFound(fetch: Fetch, slug: string): Promise<boolean>;
15
+ /**
16
+ * Test POST /webhooks/system/ui-form - Built-in webhook for UI form submissions.
17
+ * This is used by pages generated via .ui() steps to submit form data.
18
+ *
19
+ * The endpoint:
20
+ * - Accepts form data (application/x-www-form-urlencoded or multipart/form-data)
21
+ * - Requires an `identifier` query parameter to match the waiting brain
22
+ * - Returns { received: true, action: 'resumed' | 'not_found', ... }
23
+ */
24
+ uiForm(fetch: Fetch, identifier: string, formData: Record<string, string | string[]>): Promise<boolean>;
25
+ /**
26
+ * Test POST /webhooks/system/ui-form with missing identifier - Should return 400
27
+ */
28
+ uiFormMissingIdentifier(fetch: Fetch): Promise<boolean>;
29
+ };
30
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/api/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,QAAQ;IACnB;;OAEG;gBACe,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAgE1C;;OAEG;mBACkB,KAAK,QAAQ,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAoDzE;;OAEG;oBACmB,KAAK,QAAQ,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+C5D;;;;;;;;OAQG;kBAEM,KAAK,cACA,MAAM,YACR,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAC1C,OAAO,CAAC,OAAO,CAAC;IAuEnB;;OAEG;mCACkC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;CA6C9D,CAAC"}
@@ -0,0 +1,208 @@
1
+ export const webhooks = {
2
+ /**
3
+ * Test GET /webhooks - List all available webhook handlers
4
+ */
5
+ async list(fetch) {
6
+ try {
7
+ const request = new Request('http://example.com/webhooks', {
8
+ method: 'GET',
9
+ });
10
+ const response = await fetch(request);
11
+ if (!response.ok) {
12
+ console.error(`GET /webhooks returned ${response.status}`);
13
+ return false;
14
+ }
15
+ const data = (await response.json());
16
+ // Validate response structure
17
+ if (!Array.isArray(data.webhooks)) {
18
+ console.error(`Expected webhooks to be an array, got ${typeof data.webhooks}`);
19
+ return false;
20
+ }
21
+ if (typeof data.count !== 'number') {
22
+ console.error(`Expected count to be number, got ${typeof data.count}`);
23
+ return false;
24
+ }
25
+ // Validate each webhook has required fields
26
+ for (const webhook of data.webhooks) {
27
+ if (!webhook.slug || typeof webhook.slug !== 'string') {
28
+ console.error(`Webhook missing slug or has invalid type: ${JSON.stringify(webhook)}`);
29
+ return false;
30
+ }
31
+ // Description is optional
32
+ if (webhook.description !== undefined &&
33
+ typeof webhook.description !== 'string') {
34
+ console.error(`Webhook description has invalid type: ${JSON.stringify(webhook)}`);
35
+ return false;
36
+ }
37
+ }
38
+ return true;
39
+ }
40
+ catch (error) {
41
+ console.error(`Failed to test GET /webhooks:`, error);
42
+ return false;
43
+ }
44
+ },
45
+ /**
46
+ * Test POST /webhooks/:slug - Receive an incoming webhook from an external service
47
+ */
48
+ async receive(fetch, slug, payload) {
49
+ try {
50
+ const request = new Request(`http://example.com/webhooks/${encodeURIComponent(slug)}`, {
51
+ method: 'POST',
52
+ headers: {
53
+ 'Content-Type': 'application/json',
54
+ },
55
+ body: JSON.stringify(payload),
56
+ });
57
+ const response = await fetch(request);
58
+ // Accept either 200 (OK) or 202 (Accepted)
59
+ if (response.status !== 200 && response.status !== 202) {
60
+ console.error(`POST /webhooks/${slug} returned ${response.status}, expected 200 or 202`);
61
+ return false;
62
+ }
63
+ const data = (await response.json());
64
+ // Validate response structure
65
+ if (typeof data.received !== 'boolean') {
66
+ console.error(`Expected received to be boolean, got ${typeof data.received}`);
67
+ return false;
68
+ }
69
+ // Action field is optional
70
+ if (data.action !== undefined &&
71
+ !['resumed', 'started', 'queued', 'no-match'].includes(data.action)) {
72
+ console.error(`Invalid action value: ${data.action}`);
73
+ return false;
74
+ }
75
+ return true;
76
+ }
77
+ catch (error) {
78
+ console.error(`Failed to test POST /webhooks/${slug}:`, error);
79
+ return false;
80
+ }
81
+ },
82
+ /**
83
+ * Test POST /webhooks/:slug with non-existent webhook - Should return 404
84
+ */
85
+ async notFound(fetch, slug) {
86
+ try {
87
+ const request = new Request(`http://example.com/webhooks/${encodeURIComponent(slug)}`, {
88
+ method: 'POST',
89
+ headers: {
90
+ 'Content-Type': 'application/json',
91
+ },
92
+ body: JSON.stringify({}),
93
+ });
94
+ const response = await fetch(request);
95
+ if (response.status !== 404) {
96
+ console.error(`POST /webhooks/${slug} with non-existent webhook returned ${response.status}, expected 404`);
97
+ return false;
98
+ }
99
+ const data = (await response.json());
100
+ if (!data.error || typeof data.error !== 'string') {
101
+ console.error(`Expected error to be string, got ${typeof data.error}`);
102
+ return false;
103
+ }
104
+ // Verify error message mentions the webhook slug
105
+ if (!data.error.toLowerCase().includes('webhook')) {
106
+ console.error(`Expected error message to mention webhook, got: ${data.error}`);
107
+ return false;
108
+ }
109
+ return true;
110
+ }
111
+ catch (error) {
112
+ console.error(`Failed to test POST /webhooks/${slug} with non-existent webhook:`, error);
113
+ return false;
114
+ }
115
+ },
116
+ /**
117
+ * Test POST /webhooks/system/ui-form - Built-in webhook for UI form submissions.
118
+ * This is used by pages generated via .ui() steps to submit form data.
119
+ *
120
+ * The endpoint:
121
+ * - Accepts form data (application/x-www-form-urlencoded or multipart/form-data)
122
+ * - Requires an `identifier` query parameter to match the waiting brain
123
+ * - Returns { received: true, action: 'resumed' | 'not_found', ... }
124
+ */
125
+ async uiForm(fetch, identifier, formData) {
126
+ try {
127
+ // Build URLSearchParams from form data
128
+ const params = new URLSearchParams();
129
+ for (const [key, value] of Object.entries(formData)) {
130
+ if (Array.isArray(value)) {
131
+ for (const v of value) {
132
+ params.append(`${key}[]`, v);
133
+ }
134
+ }
135
+ else {
136
+ params.append(key, value);
137
+ }
138
+ }
139
+ const request = new Request(`http://example.com/webhooks/system/ui-form?identifier=${encodeURIComponent(identifier)}`, {
140
+ method: 'POST',
141
+ headers: {
142
+ 'Content-Type': 'application/x-www-form-urlencoded',
143
+ },
144
+ body: params.toString(),
145
+ });
146
+ const response = await fetch(request);
147
+ // Accept 200 (found and processed) or 404 (no brain waiting)
148
+ if (response.status !== 200 && response.status !== 404) {
149
+ console.error(`POST /webhooks/system/ui-form returned ${response.status}, expected 200 or 404`);
150
+ return false;
151
+ }
152
+ const data = (await response.json());
153
+ // Validate response structure
154
+ if (typeof data.received !== 'boolean') {
155
+ console.error(`Expected received to be boolean, got ${typeof data.received}`);
156
+ return false;
157
+ }
158
+ if (!data.action || typeof data.action !== 'string') {
159
+ console.error(`Expected action to be string, got ${typeof data.action}`);
160
+ return false;
161
+ }
162
+ // Action should be 'resumed' or 'not_found'
163
+ if (data.action !== 'resumed' && data.action !== 'not_found') {
164
+ console.error(`Expected action to be 'resumed' or 'not_found', got '${data.action}'`);
165
+ return false;
166
+ }
167
+ return true;
168
+ }
169
+ catch (error) {
170
+ console.error('Failed to test POST /webhooks/system/ui-form:', error);
171
+ return false;
172
+ }
173
+ },
174
+ /**
175
+ * Test POST /webhooks/system/ui-form with missing identifier - Should return 400
176
+ */
177
+ async uiFormMissingIdentifier(fetch) {
178
+ try {
179
+ const request = new Request('http://example.com/webhooks/system/ui-form', {
180
+ method: 'POST',
181
+ headers: {
182
+ 'Content-Type': 'application/x-www-form-urlencoded',
183
+ },
184
+ body: 'test=data',
185
+ });
186
+ const response = await fetch(request);
187
+ if (response.status !== 400) {
188
+ console.error(`POST /webhooks/system/ui-form without identifier returned ${response.status}, expected 400`);
189
+ return false;
190
+ }
191
+ const data = (await response.json());
192
+ if (!data.error || typeof data.error !== 'string') {
193
+ console.error(`Expected error to be string, got ${typeof data.error}`);
194
+ return false;
195
+ }
196
+ if (!data.error.toLowerCase().includes('identifier')) {
197
+ console.error(`Expected error message to mention identifier, got: ${data.error}`);
198
+ return false;
199
+ }
200
+ return true;
201
+ }
202
+ catch (error) {
203
+ console.error('Failed to test POST /webhooks/system/ui-form without identifier:', error);
204
+ return false;
205
+ }
206
+ },
207
+ };
208
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/api/webhooks.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -119,5 +119,5 @@ export interface PositronicDevServer {
119
119
  */
120
120
  bulkSecrets(filePath: string): Promise<void>;
121
121
  }
122
- export { testStatus, resources, brains, schedules, secrets, webhooks, pages, bundle } from './api.js';
122
+ export { testStatus, resources, brains, schedules, secrets, webhooks, signals, pages, bundle } from './api/index.js';
123
123
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAEhD;;;;OAIG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAEjD;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAEnD;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,WAAW,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IAErF;;;;OAIG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;OAIG;IACH,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAExD;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAEhD;;;;OAIG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACtD;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5C;;;;;OAKG;IACH,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAEjD;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAEnD;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,WAAW,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC,CAAC;IAErF;;;;OAIG;IACH,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;OAIG;IACH,YAAY,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -9,5 +9,5 @@
9
9
  * Currently includes the PositronicDevServer interface.
10
10
  * Future additions will include REST API specifications and tests.
11
11
  */
12
- export { testStatus, resources, brains, schedules, secrets, webhooks, pages, bundle } from './api.js';
12
+ export { testStatus, resources, brains, schedules, secrets, webhooks, signals, pages, bundle } from './api/index.js';
13
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA6HH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA6HH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}