@liquidmetal-ai/raindrop 0.0.4 → 0.0.6

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/README.md CHANGED
@@ -20,7 +20,7 @@ $ npm install -g @liquidmetal-ai/raindrop
20
20
  $ raindrop COMMAND
21
21
  running command...
22
22
  $ raindrop (--version)
23
- @liquidmetal-ai/raindrop/0.0.4 darwin-arm64 node-v22.10.0
23
+ @liquidmetal-ai/raindrop/0.0.6 darwin-arm64 node-v22.10.0
24
24
  $ raindrop --help [COMMAND]
25
25
  USAGE
26
26
  $ raindrop COMMAND
@@ -64,6 +64,7 @@ USAGE
64
64
  * [`raindrop plugins uninstall [PLUGIN]`](#raindrop-plugins-uninstall-plugin)
65
65
  * [`raindrop plugins unlink [PLUGIN]`](#raindrop-plugins-unlink-plugin)
66
66
  * [`raindrop plugins update`](#raindrop-plugins-update)
67
+ * [`raindrop tail`](#raindrop-tail)
67
68
 
68
69
  ## `raindrop auth list`
69
70
 
@@ -81,7 +82,7 @@ DESCRIPTION
81
82
  List authentications
82
83
  ```
83
84
 
84
- _See code: [src/commands/auth/list.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/auth/list.ts)_
85
+ _See code: [src/commands/auth/list.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/auth/list.ts)_
85
86
 
86
87
  ## `raindrop auth login`
87
88
 
@@ -95,7 +96,7 @@ DESCRIPTION
95
96
  Logs a user into the LiquidMetal platform. Supports browser-based authentication.
96
97
  ```
97
98
 
98
- _See code: [src/commands/auth/login.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/auth/login.ts)_
99
+ _See code: [src/commands/auth/login.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/auth/login.ts)_
99
100
 
100
101
  ## `raindrop auth logout`
101
102
 
@@ -109,7 +110,7 @@ DESCRIPTION
109
110
  Logout authentications
110
111
  ```
111
112
 
112
- _See code: [src/commands/auth/logout.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/auth/logout.ts)_
113
+ _See code: [src/commands/auth/logout.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/auth/logout.ts)_
113
114
 
114
115
  ## `raindrop auth select`
115
116
 
@@ -126,7 +127,7 @@ DESCRIPTION
126
127
  Select active organization
127
128
  ```
128
129
 
129
- _See code: [src/commands/auth/select.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/auth/select.ts)_
130
+ _See code: [src/commands/auth/select.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/auth/select.ts)_
130
131
 
131
132
  ## `raindrop build branch`
132
133
 
@@ -150,7 +151,7 @@ EXAMPLES
150
151
  Created new branch 1234
151
152
  ```
152
153
 
153
- _See code: [src/commands/build/branch.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/branch.ts)_
154
+ _See code: [src/commands/build/branch.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/branch.ts)_
154
155
 
155
156
  ## `raindrop build delete [APPLICATION]`
156
157
 
@@ -178,7 +179,7 @@ EXAMPLES
178
179
  Deleted (application) at version (version)
179
180
  ```
180
181
 
181
- _See code: [src/commands/build/delete.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/delete.ts)_
182
+ _See code: [src/commands/build/delete.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/delete.ts)_
182
183
 
183
184
  ## `raindrop build deploy`
184
185
 
@@ -204,7 +205,7 @@ EXAMPLES
204
205
  Deploy a Raindrop application.
205
206
  ```
206
207
 
207
- _See code: [src/commands/build/deploy.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/deploy.ts)_
208
+ _See code: [src/commands/build/deploy.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/deploy.ts)_
208
209
 
209
210
  ## `raindrop build env get VAR`
210
211
 
@@ -232,7 +233,7 @@ EXAMPLES
232
233
  sets an env var/secret.
233
234
  ```
234
235
 
235
- _See code: [src/commands/build/env/get.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/env/get.ts)_
236
+ _See code: [src/commands/build/env/get.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/env/get.ts)_
236
237
 
237
238
  ## `raindrop build env set VAR [VALUE]`
238
239
 
@@ -261,7 +262,7 @@ EXAMPLES
261
262
  sets an env var/secret.
262
263
  ```
263
264
 
264
- _See code: [src/commands/build/env/set.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/env/set.ts)_
265
+ _See code: [src/commands/build/env/set.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/env/set.ts)_
265
266
 
266
267
  ## `raindrop build find`
267
268
 
@@ -285,7 +286,7 @@ EXAMPLES
285
286
  $ raindrop build find .
286
287
  ```
287
288
 
288
- _See code: [src/commands/build/find.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/find.ts)_
289
+ _See code: [src/commands/build/find.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/find.ts)_
289
290
 
290
291
  ## `raindrop build generate`
291
292
 
@@ -307,7 +308,7 @@ EXAMPLES
307
308
  $ raindrop build generate
308
309
  ```
309
310
 
310
- _See code: [src/commands/build/generate.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/generate.ts)_
311
+ _See code: [src/commands/build/generate.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/generate.ts)_
311
312
 
312
313
  ## `raindrop build init [PATH]`
313
314
 
@@ -331,7 +332,7 @@ EXAMPLES
331
332
  Initialize a project in the current directory.
332
333
  ```
333
334
 
334
- _See code: [src/commands/build/init.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/init.ts)_
335
+ _See code: [src/commands/build/init.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/init.ts)_
335
336
 
336
337
  ## `raindrop build list`
337
338
 
@@ -355,7 +356,7 @@ EXAMPLES
355
356
  List Raindrop catalog resources.
356
357
  ```
357
358
 
358
- _See code: [src/commands/build/list.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/list.ts)_
359
+ _See code: [src/commands/build/list.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/list.ts)_
359
360
 
360
361
  ## `raindrop build sandbox [VERSIONID]`
361
362
 
@@ -378,7 +379,7 @@ EXAMPLES
378
379
  $ raindrop build sandbox
379
380
  ```
380
381
 
381
- _See code: [src/commands/build/sandbox.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/sandbox.ts)_
382
+ _See code: [src/commands/build/sandbox.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/sandbox.ts)_
382
383
 
383
384
  ## `raindrop build start`
384
385
 
@@ -402,7 +403,7 @@ EXAMPLES
402
403
  Start a Raindrop application.
403
404
  ```
404
405
 
405
- _See code: [src/commands/build/start.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/start.ts)_
406
+ _See code: [src/commands/build/start.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/start.ts)_
406
407
 
407
408
  ## `raindrop build stop`
408
409
 
@@ -424,7 +425,7 @@ EXAMPLES
424
425
  Stop a Raindrop application.
425
426
  ```
426
427
 
427
- _See code: [src/commands/build/stop.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/stop.ts)_
428
+ _See code: [src/commands/build/stop.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/stop.ts)_
428
429
 
429
430
  ## `raindrop build token`
430
431
 
@@ -438,7 +439,7 @@ DESCRIPTION
438
439
  generate a link to create a Cloudflare API token
439
440
  ```
440
441
 
441
- _See code: [src/commands/build/token.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/token.ts)_
442
+ _See code: [src/commands/build/token.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/token.ts)_
442
443
 
443
444
  ## `raindrop build tools check`
444
445
 
@@ -459,7 +460,7 @@ EXAMPLES
459
460
  $ raindrop build tools check
460
461
  ```
461
462
 
462
- _See code: [src/commands/build/tools/check.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/tools/check.ts)_
463
+ _See code: [src/commands/build/tools/check.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/tools/check.ts)_
463
464
 
464
465
  ## `raindrop build tools fmt`
465
466
 
@@ -480,7 +481,7 @@ EXAMPLES
480
481
  $ raindrop build tools fmt
481
482
  ```
482
483
 
483
- _See code: [src/commands/build/tools/fmt.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/tools/fmt.ts)_
484
+ _See code: [src/commands/build/tools/fmt.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/tools/fmt.ts)_
484
485
 
485
486
  ## `raindrop build unsandbox [VERSIONID]`
486
487
 
@@ -503,7 +504,7 @@ EXAMPLES
503
504
  $ raindrop build unsandbox
504
505
  ```
505
506
 
506
- _See code: [src/commands/build/unsandbox.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/unsandbox.ts)_
507
+ _See code: [src/commands/build/unsandbox.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/unsandbox.ts)_
507
508
 
508
509
  ## `raindrop build upload`
509
510
 
@@ -527,7 +528,7 @@ EXAMPLES
527
528
  $ raindrop build upload
528
529
  ```
529
530
 
530
- _See code: [src/commands/build/upload.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/upload.ts)_
531
+ _See code: [src/commands/build/upload.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/upload.ts)_
531
532
 
532
533
  ## `raindrop build validate`
533
534
 
@@ -549,7 +550,7 @@ EXAMPLES
549
550
  $ raindrop build validate
550
551
  ```
551
552
 
552
- _See code: [src/commands/build/validate.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.4/src/commands/build/validate.ts)_
553
+ _See code: [src/commands/build/validate.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/build/validate.ts)_
553
554
 
554
555
  ## `raindrop help [COMMAND]`
555
556
 
@@ -859,4 +860,18 @@ DESCRIPTION
859
860
  ```
860
861
 
861
862
  _See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.10/src/commands/plugins/update.ts)_
863
+
864
+ ## `raindrop tail`
865
+
866
+ tail logs of applications deployed
867
+
868
+ ```
869
+ USAGE
870
+ $ raindrop tail
871
+
872
+ DESCRIPTION
873
+ tail logs of applications deployed
874
+ ```
875
+
876
+ _See code: [src/commands/tail.ts](https://github.com/liquidmetal-ai/liquidmetal/blob/v0.0.6/src/commands/tail.ts)_
862
877
  <!-- commandsstop -->
@@ -1,6 +1,8 @@
1
1
  import { PromiseClient } from '@connectrpc/connect';
2
2
  import { Application } from '@liquidmetal-ai/drizzle/appify/build';
3
3
  import { CatalogService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/catalog_connect';
4
+ import { RainbowAuthService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/rainbow_auth_connect';
5
+ import { RainbowPublicService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/rainbow_public_connect';
4
6
  import { Command, Interfaces } from '@oclif/core';
5
7
  import { Config } from './config.js';
6
8
  export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof BaseCommand)['baseFlags'] & T['flags']>;
@@ -23,5 +25,13 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
23
25
  userId: string;
24
26
  organizationId: string;
25
27
  }>;
28
+ protected rainbowAuthService(): Promise<{
29
+ client: PromiseClient<typeof RainbowAuthService>;
30
+ }>;
31
+ protected rainbowPublicService(): Promise<{
32
+ client: PromiseClient<typeof RainbowPublicService>;
33
+ organizationId: string;
34
+ userId: string;
35
+ }>;
26
36
  }
27
37
  //# sourceMappingURL=base-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-command.d.ts","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAS,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,MAAM,EAA0B,MAAM,aAAa,CAAC;AAG7D,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACvH,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhF,8BAAsB,WAAW,CAAC,CAAC,SAAS,OAAO,OAAO,CAAE,SAAQ,OAAO;IACzE,MAAM,CAAC,SAAS,KAAM;IAEtB,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzB,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAErB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;cAclB,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;cAKvD,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;cAI3C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;cAK7B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIzC,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;cAuBtC,cAAc,IAAI,OAAO,CAAC;QACxC,MAAM,EAAE,aAAa,CAAC,OAAO,cAAc,CAAC,CAAC;QAC7C,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CAIH"}
1
+ {"version":3,"file":"base-command.d.ts","sourceRoot":"","sources":["../src/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mEAAmE,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qEAAqE,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAS,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,MAAM,EAA0B,MAAM,aAAa,CAAC;AAG7D,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACvH,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhF,8BAAsB,WAAW,CAAC,CAAC,SAAS,OAAO,OAAO,CAAE,SAAQ,OAAO;IACzE,MAAM,CAAC,SAAS,KAAM;IAEtB,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzB,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAErB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;cAclB,KAAK,CAAC,GAAG,EAAE,KAAK,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;cAKvD,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;cAI3C,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;cAK7B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIzC,YAAY,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;cAuBtC,cAAc,IAAI,OAAO,CAAC;QACxC,MAAM,EAAE,aAAa,CAAC,OAAO,cAAc,CAAC,CAAC;QAC7C,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;cAQc,kBAAkB,IAAI,OAAO,CAAC;QAC5C,MAAM,EAAE,aAAa,CAAC,OAAO,kBAAkB,CAAC,CAAC;KAClD,CAAC;cAMc,oBAAoB,IAAI,OAAO,CAAC;QAC9C,MAAM,EAAE,aAAa,CAAC,OAAO,oBAAoB,CAAC,CAAC;QACnD,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CAaH"}
@@ -1,6 +1,7 @@
1
1
  import { manifestFromString } from '@liquidmetal-ai/drizzle/appify/index';
2
2
  import { CatalogService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/catalog_connect';
3
3
  import { RainbowAuthService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/rainbow_auth_connect';
4
+ import { RainbowPublicService } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/rainbow_public_connect';
4
5
  import { Command } from '@oclif/core';
5
6
  import * as fs from 'node:fs/promises';
6
7
  import path from 'node:path';
@@ -47,9 +48,9 @@ export class BaseCommand extends Command {
47
48
  }
48
49
  const contents = await fs.readFile(manifestPath, 'utf-8');
49
50
  const [apps, errors] = await manifestFromString(contents);
50
- const noErrors = errors.every((e) => "severity" in e && e.severity !== 'error');
51
+ const noErrors = errors.every((e) => 'severity' in e && e.severity !== 'error');
51
52
  for (const error of errors) {
52
- const severity = "severity" in error ? error.severity : 'error';
53
+ const severity = 'severity' in error ? error.severity : 'error';
53
54
  this.log(`${this.flags.manifest}:${error.line}:${error.column}: ${severity}: ${error.message}`);
54
55
  }
55
56
  if (!noErrors && errors.length > 0) {
@@ -61,7 +62,19 @@ export class BaseCommand extends Command {
61
62
  return apps;
62
63
  }
63
64
  async catalogService() {
64
- const rainbowAuth = useClient(RainbowAuthService, this.flags.rainbowAuthService);
65
- return await createAuthenticatingClient(CatalogService, this.config.configDir, rainbowAuth);
65
+ return await createAuthenticatingClient(CatalogService, this.config.configDir, (await this.rainbowAuthService()).client);
66
+ }
67
+ async rainbowAuthService() {
68
+ return {
69
+ client: useClient(RainbowAuthService, this.flags.rainbowAuthService),
70
+ };
71
+ }
72
+ async rainbowPublicService() {
73
+ const { organizationId, userId } = await createAuthenticatingClient(CatalogService, this.config.configDir, (await this.rainbowAuthService()).client);
74
+ return {
75
+ client: useClient(RainbowPublicService, this.flags.rainbowPublicService),
76
+ organizationId,
77
+ userId,
78
+ };
66
79
  }
67
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAW,MAAM,sCAAsC,CAAC;AAKtG,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAC1C,eAAO,MAAM,aAAa,QAA6E,CAAC;AACxG,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAYzD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEvD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAG3F;AAED,wBAAsB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAG5G;AAED,wBAAsB,4BAA4B,CAChD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAqBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAYlF;AAED,MAAM,MAAM,cAAc,GACtB;IACA,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACC,SAAS,CAAC;AAEd,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GAAG,SAAqB,EACvC,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B,EAAE,CAAC;AAGJ,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,CAsC5D;AAeD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAoDjG;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAGxE,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAalF"}
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../src/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAW,MAAM,sCAAsC,CAAC;AAKtG,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAC1C,eAAO,MAAM,aAAa,QAA6E,CAAC;AACxG,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,YAAY,QAAQ,CAAC;AAClC,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAYzD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEvD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAG3F;AAED,wBAAsB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAG5G;AAED,wBAAsB,4BAA4B,CAChD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAsBf;AAqBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAYlF;AAED,MAAM,MAAM,cAAc,GACtB;IACA,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GACC,SAAS,CAAC;AAEd,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GAAG,SAAqB,EACvC,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B,EAAE,CAAC;AAGJ,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,WAAW,CAsC5D;AAeD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAoDjG;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAGxE,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBlF"}
package/dist/codegen.js CHANGED
@@ -202,7 +202,10 @@ export async function dirWalk(dir, visitFn) {
202
202
  await visitFn(entry.name);
203
203
  }
204
204
  });
205
- await Promise.all(tasks);
205
+ const settled = await Promise.allSettled(tasks);
206
+ if (settled.some((p) => p.status === 'rejected')) {
207
+ throw new Error('Failed to process all files');
208
+ }
206
209
  }
207
210
  function kebabCaseToConstantCase(s) {
208
211
  return s.toUpperCase().replace(/-/g, '_');
@@ -31,7 +31,7 @@ export default class Login extends BaseCommand {
31
31
  qrcode.generate(verificationUriComplete, { small: true });
32
32
  console.log(`Scan the QR code or, using a browser visit: ${verificationUriComplete}`);
33
33
  console.log('\n\nopening url...');
34
- open(verificationUriComplete);
34
+ void open(verificationUriComplete);
35
35
  await spinner('Waiting for session...', async () => {
36
36
  let interval = initialInterval;
37
37
  let done = false;
@@ -77,14 +77,14 @@ List Raindrop catalog resources.
77
77
  return acc;
78
78
  },
79
79
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
- {}), ['name', 'versionId', 'isActive', ...(this.flags.all ? ['deletedAt'] : [])]);
80
+ {}), ['organizationId', 'name', 'versionId', 'isActive', ...(this.flags.all ? ['deletedAt'] : [])]);
81
81
  }
82
82
  else if (this.flags.output === 'json') {
83
83
  this.log(JSON.stringify(resp, null, 2));
84
84
  }
85
85
  else {
86
86
  for (const a of resp.applications) {
87
- console.log(`${a.createdAt?.toDate().toISOString()} ${a.versionId} ${a.name} (${a.isActive ? 'active' : 'inactive'})`);
87
+ console.log(`${a.createdAt?.toDate().toISOString()} ${a.organizationId} ${a.versionId} ${a.name} (${a.isActive ? 'active' : 'inactive'})`);
88
88
  }
89
89
  }
90
90
  }
@@ -0,0 +1,12 @@
1
+ import { BaseCommand } from '../base-command.js';
2
+ export default class Tail extends BaseCommand<typeof Tail> {
3
+ static args: {};
4
+ static description: string;
5
+ static flags: {
6
+ impersonate: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ rainbowAuthService: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
+ rainbowPublicService: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ };
10
+ run(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=tail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAwC;IAE1D,MAAM,CAAC,KAAK;;;;MAiBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB3B"}
@@ -0,0 +1,45 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { BaseCommand } from '../base-command.js';
3
+ import { Socket } from '@resocket/socket';
4
+ import { TailWebsocketMessage } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/rainbow_public_pb';
5
+ export default class Tail extends BaseCommand {
6
+ static args = {};
7
+ static description = 'tail logs of applications deployed';
8
+ static flags = {
9
+ impersonate: Flags.string({
10
+ char: 'i',
11
+ description: 'impersonate organization',
12
+ required: false,
13
+ hidden: true,
14
+ }),
15
+ rainbowAuthService: Flags.string({
16
+ default: 'https://liquidmetal.run/api/connect',
17
+ hidden: true,
18
+ env: 'LIQUIDMETAL_RAINBOW_AUTH_SERVICE',
19
+ }),
20
+ rainbowPublicService: Flags.string({
21
+ default: 'https://rainbow-service-production.liquidmetal.run',
22
+ hidden: true,
23
+ env: 'LIQUIDMETAL_RAINBOW_PUBLIC_SERVICE',
24
+ }),
25
+ };
26
+ async run() {
27
+ const { client: rainbow, organizationId, userId } = await this.rainbowPublicService();
28
+ const { websocketUrl } = await rainbow.tail({
29
+ organizationId,
30
+ userId,
31
+ });
32
+ const socket = new Socket(websocketUrl, undefined, {
33
+ heartbeatInterval: 30000,
34
+ });
35
+ socket.addEventListener('message', (e) => {
36
+ const msg = TailWebsocketMessage.fromJsonString(e.data);
37
+ console.log(msg);
38
+ });
39
+ return new Promise((resolve) => {
40
+ socket.on('close', () => {
41
+ resolve();
42
+ });
43
+ });
44
+ }
45
+ }
@@ -1 +1 @@
1
- {"root":["../src/base-command.ts","../src/build.test.ts","../src/build.ts","../src/codegen.test.ts","../src/codegen.ts","../src/config.test.ts","../src/config.ts","../src/index.test.ts","../src/index.ts","../src/commands/auth/list.ts","../src/commands/auth/login.ts","../src/commands/auth/logout.ts","../src/commands/auth/select.ts","../src/commands/build/branch.ts","../src/commands/build/delete.ts","../src/commands/build/deploy.ts","../src/commands/build/find.ts","../src/commands/build/generate.ts","../src/commands/build/init.ts","../src/commands/build/list.ts","../src/commands/build/sandbox.ts","../src/commands/build/start.ts","../src/commands/build/stop.ts","../src/commands/build/token.ts","../src/commands/build/unsandbox.ts","../src/commands/build/upload.ts","../src/commands/build/validate.ts","../src/commands/build/env/get.ts","../src/commands/build/env/set.ts","../src/commands/build/tools/check.ts","../src/commands/build/tools/fmt.ts"],"version":"5.6.2"}
1
+ {"root":["../src/base-command.ts","../src/build.test.ts","../src/build.ts","../src/codegen.test.ts","../src/codegen.ts","../src/config.test.ts","../src/config.ts","../src/index.test.ts","../src/index.ts","../src/commands/tail.ts","../src/commands/auth/list.ts","../src/commands/auth/login.ts","../src/commands/auth/logout.ts","../src/commands/auth/select.ts","../src/commands/build/branch.ts","../src/commands/build/delete.ts","../src/commands/build/deploy.ts","../src/commands/build/find.ts","../src/commands/build/generate.ts","../src/commands/build/init.ts","../src/commands/build/list.ts","../src/commands/build/sandbox.ts","../src/commands/build/start.ts","../src/commands/build/stop.ts","../src/commands/build/token.ts","../src/commands/build/unsandbox.ts","../src/commands/build/upload.ts","../src/commands/build/validate.ts","../src/commands/build/env/get.ts","../src/commands/build/env/set.ts","../src/commands/build/tools/check.ts","../src/commands/build/tools/fmt.ts"],"version":"5.6.2"}
@@ -1,5 +1,54 @@
1
1
  {
2
2
  "commands": {
3
+ "tail": {
4
+ "aliases": [],
5
+ "args": {},
6
+ "description": "tail logs of applications deployed",
7
+ "flags": {
8
+ "impersonate": {
9
+ "char": "i",
10
+ "description": "impersonate organization",
11
+ "hidden": true,
12
+ "name": "impersonate",
13
+ "required": false,
14
+ "hasDynamicHelp": false,
15
+ "multiple": false,
16
+ "type": "option"
17
+ },
18
+ "rainbowAuthService": {
19
+ "env": "LIQUIDMETAL_RAINBOW_AUTH_SERVICE",
20
+ "hidden": true,
21
+ "name": "rainbowAuthService",
22
+ "default": "https://liquidmetal.run/api/connect",
23
+ "hasDynamicHelp": false,
24
+ "multiple": false,
25
+ "type": "option"
26
+ },
27
+ "rainbowPublicService": {
28
+ "env": "LIQUIDMETAL_RAINBOW_PUBLIC_SERVICE",
29
+ "hidden": true,
30
+ "name": "rainbowPublicService",
31
+ "default": "https://rainbow-service-production.liquidmetal.run",
32
+ "hasDynamicHelp": false,
33
+ "multiple": false,
34
+ "type": "option"
35
+ }
36
+ },
37
+ "hasDynamicHelp": false,
38
+ "hiddenAliases": [],
39
+ "id": "tail",
40
+ "pluginAlias": "@liquidmetal-ai/raindrop",
41
+ "pluginName": "@liquidmetal-ai/raindrop",
42
+ "pluginType": "core",
43
+ "strict": true,
44
+ "enableJsonFlag": false,
45
+ "isESM": true,
46
+ "relativePath": [
47
+ "dist",
48
+ "commands",
49
+ "tail.js"
50
+ ]
51
+ },
3
52
  "auth:list": {
4
53
  "aliases": [],
5
54
  "args": {},
@@ -1443,5 +1492,5 @@
1443
1492
  ]
1444
1493
  }
1445
1494
  },
1446
- "version": "0.0.4"
1495
+ "version": "0.0.6"
1447
1496
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@liquidmetal-ai/raindrop",
3
3
  "description": "CLI for the Raindrop platform",
4
- "version": "0.0.4",
4
+ "version": "0.0.6",
5
5
  "author": "bosgood",
6
6
  "bin": {
7
7
  "raindrop": "./bin/run.js"
@@ -14,6 +14,7 @@
14
14
  "@oclif/core": "^4",
15
15
  "@oclif/plugin-help": "^6",
16
16
  "@oclif/plugin-plugins": "^5",
17
+ "@resocket/socket": "^0.0.1",
17
18
  "async-mutex": "^0.5.0",
18
19
  "atomically": "^2.0.3",
19
20
  "esbuild": "^0.24.0",
@@ -56,7 +57,8 @@
56
57
  "files": [
57
58
  "/bin",
58
59
  "/dist",
59
- "/oclif.manifest.json"
60
+ "/oclif.manifest.json",
61
+ "/templates"
60
62
  ],
61
63
  "homepage": "https://github.com/LiquidMetal-AI/liquidmetal/tree/main/packages/raindrop",
62
64
  "keywords": [
@@ -0,0 +1,5 @@
1
+ import { expect, test } from 'vitest';
2
+
3
+ test('dummy test', async () => {
4
+ expect(true).toBe(true);
5
+ });
@@ -0,0 +1,8 @@
1
+ import { actors } from '@liquidmetal-ai/raindrop-framework';
2
+ import { Env } from './raindrop.gen';
3
+
4
+ export class {{ actorClassName }} extends actors.Actor<Env> {
5
+ constructor(state: DurableObjectState, env: Env) {
6
+ super(state, env);
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ import { expect, test } from 'vitest';
2
+
3
+ test('dummy test', async () => {
4
+ expect(true).toBe(true);
5
+ });
@@ -0,0 +1,8 @@
1
+ import { services } from '@liquidmetal-ai/raindrop-framework';
2
+ import { Env } from './raindrop.gen';
3
+
4
+ export default class extends services.Service<Env> {
5
+ async fetch(request: Request): Promise<Response> {
6
+ return new Response('Request received');
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ import { expect, test } from 'vitest';
2
+
3
+ test('dummy test', async () => {
4
+ expect(true).toBe(true);
5
+ });
@@ -0,0 +1,11 @@
1
+ import { observers } from '@liquidmetal-ai/raindrop-framework';
2
+ import { Env } from './raindrop.gen';
3
+
4
+ export default class extends observers.Each<Body, Env> {
5
+ async process(message: Body): Promise<void> {
6
+ console.log(JSON.stringify(message));
7
+ }
8
+ }
9
+
10
+ export interface Body {
11
+ }
@@ -0,0 +1,5 @@
1
+ import { expect, test } from 'vitest';
2
+
3
+ test('dummy test', async () => {
4
+ expect(true).toBe(true);
5
+ });
@@ -0,0 +1,8 @@
1
+ import { observers } from '@liquidmetal-ai/raindrop-framework';
2
+ import { Env } from './raindrop.gen';
3
+
4
+ export default class extends observers.Each<Body, Env> {
5
+ async process(message: observers.BucketEventNotification): Promise<void> {
6
+ console.log(JSON.stringify(message));
7
+ }
8
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "{{ applicationName }}",
3
+ "version": "1.0.0",
4
+ "description": "LiquidMetal AI app",
5
+ "scripts": {
6
+ "build": "shx rm -rf dist && tsc -b",
7
+ "format": "prettier --write \"**/*.{ts,tsx,md}\"",
8
+ "lint": "eslint . --max-warnings=0",
9
+ "test": "vitest run",
10
+ "test:watch": "vitest"
11
+ },
12
+ "devDependencies": {
13
+ "@cloudflare/workers-types": "^4",
14
+ "shx": "^0.3.3",
15
+ "ts-node": "^10",
16
+ "typescript-eslint": "^7.17.0",
17
+ "typescript": "^5.0.4",
18
+ "vitest": "^2.0.2"
19
+ },
20
+ "dependencies": {
21
+ "@liquidmetal-ai/raindrop-framework": "^0.0.1"
22
+ }
23
+ }
@@ -0,0 +1,3 @@
1
+ application "{{ applicationName }}" {
2
+
3
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/tsconfig",
3
+ "display": "LiquidMetal.AI Application",
4
+ "compilerOptions": {
5
+ "allowJs": true,
6
+ "allowSyntheticDefaultImports": true,
7
+ "checkJs": false,
8
+ "declaration": true,
9
+ "declarationMap": true,
10
+ "esModuleInterop": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "incremental": false,
13
+ "isolatedModules": true,
14
+ "jsx": "react",
15
+ "lib": ["es2021"],
16
+ "module": "es2022",
17
+ "moduleDetection": "force",
18
+ "moduleResolution": "Bundler",
19
+ "noEmit": true,
20
+ "noUncheckedIndexedAccess": true,
21
+ "outDir": "dist",
22
+ "resolveJsonModule": true,
23
+ "skipLibCheck": true,
24
+ "strict": true,
25
+ "target": "es2021",
26
+ "types": ["@cloudflare/workers-types"]
27
+ },
28
+ "exclude": ["test"]
29
+ }