@nebulr-group/bridge-cli 0.1.0-beta.0

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 (78) hide show
  1. package/README.md +202 -0
  2. package/dist/bin.d.ts +3 -0
  3. package/dist/bin.d.ts.map +1 -0
  4. package/dist/bin.js +6 -0
  5. package/dist/bin.js.map +1 -0
  6. package/dist/cli.d.ts +3 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +33 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/app.command.d.ts +3 -0
  11. package/dist/commands/app.command.d.ts.map +1 -0
  12. package/dist/commands/app.command.js +59 -0
  13. package/dist/commands/app.command.js.map +1 -0
  14. package/dist/commands/auth.command.d.ts +3 -0
  15. package/dist/commands/auth.command.d.ts.map +1 -0
  16. package/dist/commands/auth.command.js +58 -0
  17. package/dist/commands/auth.command.js.map +1 -0
  18. package/dist/commands/branding.command.d.ts +3 -0
  19. package/dist/commands/branding.command.d.ts.map +1 -0
  20. package/dist/commands/branding.command.js +42 -0
  21. package/dist/commands/branding.command.js.map +1 -0
  22. package/dist/commands/event.command.d.ts +3 -0
  23. package/dist/commands/event.command.d.ts.map +1 -0
  24. package/dist/commands/event.command.js +27 -0
  25. package/dist/commands/event.command.js.map +1 -0
  26. package/dist/commands/flag.command.d.ts +3 -0
  27. package/dist/commands/flag.command.d.ts.map +1 -0
  28. package/dist/commands/flag.command.js +76 -0
  29. package/dist/commands/flag.command.js.map +1 -0
  30. package/dist/commands/guide.command.d.ts +3 -0
  31. package/dist/commands/guide.command.d.ts.map +1 -0
  32. package/dist/commands/guide.command.js +168 -0
  33. package/dist/commands/guide.command.js.map +1 -0
  34. package/dist/commands/info.command.d.ts +3 -0
  35. package/dist/commands/info.command.d.ts.map +1 -0
  36. package/dist/commands/info.command.js +70 -0
  37. package/dist/commands/info.command.js.map +1 -0
  38. package/dist/commands/integrate.command.d.ts +3 -0
  39. package/dist/commands/integrate.command.d.ts.map +1 -0
  40. package/dist/commands/integrate.command.js +49 -0
  41. package/dist/commands/integrate.command.js.map +1 -0
  42. package/dist/commands/plan.command.d.ts +3 -0
  43. package/dist/commands/plan.command.d.ts.map +1 -0
  44. package/dist/commands/plan.command.js +52 -0
  45. package/dist/commands/plan.command.js.map +1 -0
  46. package/dist/commands/role.command.d.ts +3 -0
  47. package/dist/commands/role.command.d.ts.map +1 -0
  48. package/dist/commands/role.command.js +65 -0
  49. package/dist/commands/role.command.js.map +1 -0
  50. package/dist/commands/setup.command.d.ts +3 -0
  51. package/dist/commands/setup.command.d.ts.map +1 -0
  52. package/dist/commands/setup.command.js +65 -0
  53. package/dist/commands/setup.command.js.map +1 -0
  54. package/dist/commands/tenant.command.d.ts +3 -0
  55. package/dist/commands/tenant.command.d.ts.map +1 -0
  56. package/dist/commands/tenant.command.js +74 -0
  57. package/dist/commands/tenant.command.js.map +1 -0
  58. package/dist/commands/token.command.d.ts +3 -0
  59. package/dist/commands/token.command.d.ts.map +1 -0
  60. package/dist/commands/token.command.js +45 -0
  61. package/dist/commands/token.command.js.map +1 -0
  62. package/dist/commands/user.command.d.ts +3 -0
  63. package/dist/commands/user.command.d.ts.map +1 -0
  64. package/dist/commands/user.command.js +83 -0
  65. package/dist/commands/user.command.js.map +1 -0
  66. package/dist/config.d.ts +9 -0
  67. package/dist/config.d.ts.map +1 -0
  68. package/dist/config.js +30 -0
  69. package/dist/config.js.map +1 -0
  70. package/dist/index.d.ts +4 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +4 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/output.d.ts +3 -0
  75. package/dist/output.d.ts.map +1 -0
  76. package/dist/output.js +34 -0
  77. package/dist/output.js.map +1 -0
  78. package/package.json +49 -0
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerTokenCommands(program: Command): void;
3
+ //# sourceMappingURL=token.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.command.d.ts","sourceRoot":"","sources":["../../src/commands/token.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC5D"}
@@ -0,0 +1,45 @@
1
+ import { getManagementClient } from '../config.js';
2
+ import { outputSuccess, outputError } from '../output.js';
3
+ export function registerTokenCommands(program) {
4
+ const token = program.command('token').description('Manage API tokens');
5
+ token.command('list')
6
+ .description('List all API tokens')
7
+ .action(async () => {
8
+ try {
9
+ outputSuccess(await getManagementClient().tokens.list());
10
+ }
11
+ catch (err) {
12
+ outputError(err);
13
+ }
14
+ });
15
+ token.command('create')
16
+ .description('Create a new API token')
17
+ .requiredOption('--name <name>', 'Token name')
18
+ .option('--privileges <list>', 'Comma-separated privilege keys', (v) => v.split(','))
19
+ .option('--expire-at <date>', 'Expiration date (ISO format)')
20
+ .action(async (opts) => {
21
+ try {
22
+ outputSuccess(await getManagementClient().tokens.create({
23
+ name: opts.name,
24
+ privileges: opts.privileges ?? [],
25
+ expireAt: opts.expireAt,
26
+ }));
27
+ }
28
+ catch (err) {
29
+ outputError(err);
30
+ }
31
+ });
32
+ token.command('revoke')
33
+ .description('Revoke an API token')
34
+ .requiredOption('--id <id>', 'Token ID')
35
+ .action(async (opts) => {
36
+ try {
37
+ await getManagementClient().tokens.revoke(opts.id);
38
+ outputSuccess({ revoked: true, id: opts.id });
39
+ }
40
+ catch (err) {
41
+ outputError(err);
42
+ }
43
+ });
44
+ }
45
+ //# sourceMappingURL=token.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.command.js","sourceRoot":"","sources":["../../src/commands/token.command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAExE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;SAClB,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YAAC,aAAa,CAAC,MAAM,mBAAmB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QACjE,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEL,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;SACpB,WAAW,CAAC,wBAAwB,CAAC;SACrC,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;SAC7C,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACpF,MAAM,CAAC,oBAAoB,EAAE,8BAA8B,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,aAAa,CAAC,MAAM,mBAAmB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;gBACtD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;SACpB,WAAW,CAAC,qBAAqB,CAAC;SAClC,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,mBAAmB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerUserCommands(program: Command): void;
3
+ //# sourceMappingURL=user.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.command.d.ts","sourceRoot":"","sources":["../../src/commands/user.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuE3D"}
@@ -0,0 +1,83 @@
1
+ import { getManagementClient, resolveTenantId } from '../config.js';
2
+ import { outputSuccess, outputError } from '../output.js';
3
+ export function registerUserCommands(program) {
4
+ const user = program.command('user').description('Manage tenant users');
5
+ user.command('list')
6
+ .description('List users in a tenant')
7
+ .option('--tenant-id <id>', 'Tenant ID (or set BRIDGE_TENANT_ID)')
8
+ .action(async (opts) => {
9
+ try {
10
+ const tenantId = resolveTenantId(opts);
11
+ outputSuccess(await getManagementClient().users.list(tenantId));
12
+ }
13
+ catch (err) {
14
+ outputError(err);
15
+ }
16
+ });
17
+ user.command('get')
18
+ .description('Get user details')
19
+ .requiredOption('--user-id <id>', 'User ID')
20
+ .option('--tenant-id <id>', 'Tenant ID (or set BRIDGE_TENANT_ID)')
21
+ .action(async (opts) => {
22
+ try {
23
+ const tenantId = resolveTenantId(opts);
24
+ outputSuccess(await getManagementClient().users.get(tenantId, opts.userId));
25
+ }
26
+ catch (err) {
27
+ outputError(err);
28
+ }
29
+ });
30
+ user.command('invite')
31
+ .description('Invite a user to a tenant')
32
+ .requiredOption('--email <email>', 'User email')
33
+ .option('--role <role>', 'Role key')
34
+ .option('--first-name <name>', 'First name')
35
+ .option('--last-name <name>', 'Last name')
36
+ .option('--tenant-id <id>', 'Tenant ID (or set BRIDGE_TENANT_ID)')
37
+ .action(async (opts) => {
38
+ try {
39
+ const tenantId = resolveTenantId(opts);
40
+ outputSuccess(await getManagementClient().users.invite(tenantId, {
41
+ username: opts.email,
42
+ role: opts.role,
43
+ firstName: opts.firstName,
44
+ lastName: opts.lastName,
45
+ }));
46
+ }
47
+ catch (err) {
48
+ outputError(err);
49
+ }
50
+ });
51
+ user.command('update')
52
+ .description('Update a user')
53
+ .requiredOption('--user-id <id>', 'User ID')
54
+ .option('--role <role>', 'Role key')
55
+ .option('--enabled <bool>', 'Enable/disable user', (v) => v === 'true')
56
+ .option('--tenant-id <id>', 'Tenant ID (or set BRIDGE_TENANT_ID)')
57
+ .action(async (opts) => {
58
+ try {
59
+ const tenantId = resolveTenantId(opts);
60
+ const data = Object.fromEntries(Object.entries({ role: opts.role, enabled: opts.enabled })
61
+ .filter(([, v]) => v !== undefined));
62
+ outputSuccess(await getManagementClient().users.update(tenantId, opts.userId, data));
63
+ }
64
+ catch (err) {
65
+ outputError(err);
66
+ }
67
+ });
68
+ user.command('remove')
69
+ .description('Remove a user from a tenant')
70
+ .requiredOption('--user-id <id>', 'User ID')
71
+ .option('--tenant-id <id>', 'Tenant ID (or set BRIDGE_TENANT_ID)')
72
+ .action(async (opts) => {
73
+ try {
74
+ const tenantId = resolveTenantId(opts);
75
+ await getManagementClient().users.remove(tenantId, opts.userId);
76
+ outputSuccess({ removed: true, userId: opts.userId });
77
+ }
78
+ catch (err) {
79
+ outputError(err);
80
+ }
81
+ });
82
+ }
83
+ //# sourceMappingURL=user.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.command.js","sourceRoot":"","sources":["../../src/commands/user.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BridgeManagement } from '@nebulr-group/bridge-auth-core';
2
+ export declare function getManagementClient(): BridgeManagement;
3
+ export declare function resolveTenantId(opts: {
4
+ tenantId?: string;
5
+ }): string;
6
+ export declare class ConfigError extends Error {
7
+ constructor(message: string);
8
+ }
9
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIlE,wBAAgB,mBAAmB,IAAI,gBAAgB,CAetD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAQnE;AAED,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B"}
package/dist/config.js ADDED
@@ -0,0 +1,30 @@
1
+ import { BridgeManagement } from '@nebulr-group/bridge-auth-core';
2
+ let _client = null;
3
+ export function getManagementClient() {
4
+ if (_client)
5
+ return _client;
6
+ const apiKey = process.env.BRIDGE_API_KEY;
7
+ if (!apiKey) {
8
+ throw new ConfigError('BRIDGE_API_KEY environment variable is required.');
9
+ }
10
+ _client = new BridgeManagement({
11
+ apiKey,
12
+ baseUrl: process.env.BRIDGE_BASE_URL || undefined,
13
+ debug: process.env.BRIDGE_DEBUG === 'true',
14
+ });
15
+ return _client;
16
+ }
17
+ export function resolveTenantId(opts) {
18
+ const tenantId = opts.tenantId || process.env.BRIDGE_TENANT_ID;
19
+ if (!tenantId) {
20
+ throw new ConfigError('Tenant context required. Set BRIDGE_TENANT_ID environment variable or use --tenant-id flag.');
21
+ }
22
+ return tenantId;
23
+ }
24
+ export class ConfigError extends Error {
25
+ constructor(message) {
26
+ super(message);
27
+ this.name = 'ConfigError';
28
+ }
29
+ }
30
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,IAAI,OAAO,GAA4B,IAAI,CAAC;AAE5C,MAAM,UAAU,mBAAmB;IACjC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,WAAW,CAAC,kDAAkD,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,GAAG,IAAI,gBAAgB,CAAC;QAC7B,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,SAAS;QACjD,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM;KAC3C,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAA2B;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,WAAW,CACnB,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export { program } from './cli.js';
2
+ export { getManagementClient, resolveTenantId, ConfigError } from './config.js';
3
+ export { outputSuccess, outputError } from './output.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { program } from './cli.js';
2
+ export { getManagementClient, resolveTenantId, ConfigError } from './config.js';
3
+ export { outputSuccess, outputError } from './output.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function outputSuccess(data: unknown): void;
2
+ export declare function outputError(error: unknown): void;
3
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAGjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CA2BhD"}
package/dist/output.js ADDED
@@ -0,0 +1,34 @@
1
+ import { HttpError } from '@nebulr-group/bridge-auth-core';
2
+ import { ConfigError } from './config.js';
3
+ export function outputSuccess(data) {
4
+ const output = { success: true, data };
5
+ process.stdout.write(JSON.stringify(output, null, 2) + '\n');
6
+ }
7
+ export function outputError(error) {
8
+ let code = 'UNKNOWN_ERROR';
9
+ let message = 'An unknown error occurred';
10
+ let details = undefined;
11
+ let exitCode = 1;
12
+ if (error instanceof ConfigError) {
13
+ code = 'CONFIG_ERROR';
14
+ message = error.message;
15
+ exitCode = 3;
16
+ }
17
+ else if (error instanceof HttpError) {
18
+ code = `HTTP_${error.status}`;
19
+ message = error.message;
20
+ details = error.body;
21
+ exitCode = error.status >= 500 ? 2 : 1;
22
+ // Extract nblocksCode if present
23
+ if (typeof error.body === 'object' && error.body && 'nblocksCode' in error.body) {
24
+ code = error.body.nblocksCode;
25
+ }
26
+ }
27
+ else if (error instanceof Error) {
28
+ message = error.message;
29
+ }
30
+ const output = { success: false, error: { code, message, ...(details !== undefined ? { details } : {}) } };
31
+ process.stderr.write(JSON.stringify(output, null, 2) + '\n');
32
+ process.exitCode = exitCode;
33
+ }
34
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,IAAI,GAAG,eAAe,CAAC;IAC3B,IAAI,OAAO,GAAG,2BAA2B,CAAC;IAC1C,IAAI,OAAO,GAAY,SAAS,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;QACjC,IAAI,GAAG,cAAc,CAAC;QACtB,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,QAAQ,GAAG,CAAC,CAAC;IACf,CAAC;SAAM,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;QACtC,IAAI,GAAG,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QACrB,QAAQ,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEvC,iCAAiC;QACjC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,aAAa,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAChF,IAAI,GAAI,KAAK,CAAC,IAA+B,CAAC,WAAW,CAAC;QAC5D,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;IAC3G,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC9B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@nebulr-group/bridge-cli",
3
+ "version": "0.1.0-beta.0",
4
+ "description": "Bridge platform CLI for AI coding agents and developers",
5
+ "author": "Nebulr Group",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "bin": {
9
+ "bridge": "dist/bin.js"
10
+ },
11
+ "main": "dist/index.js",
12
+ "types": "dist/index.d.ts",
13
+ "files": [
14
+ "dist",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "prepublishOnly": "npm run build",
21
+ "test": "jest --passWithNoTests",
22
+ "test:coverage": "jest --coverage",
23
+ "publish:local": "npm run build && node -e \"const fs=require('fs'),p=JSON.parse(fs.readFileSync('package.json','utf8')),v=p.version.match(/^(\\d+\\.\\d+\\.\\d+)-alpha\\.(\\d+)$/);if(v){p.version=v[1]+'-alpha.'+(+v[2]+1);}else{p.version=p.version+'-alpha.0';}fs.writeFileSync('package.json',JSON.stringify(p,null,' ')+'\\n');console.log('Version bumped to '+p.version);\" && npm publish --registry http://host.docker.internal:4873 --no-git-checks --ignore-scripts && npm dist-tag add @nebulr-group/bridge-cli@$(node -p \"require('./package.json').version\") alpha --registry http://host.docker.internal:4873"
24
+ },
25
+ "dependencies": {
26
+ "@nebulr-group/bridge-auth-core": "^0.1.0-beta.0",
27
+ "commander": "^12.0.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/jest": "^29.5.14",
31
+ "@types/node": "^22.10.7",
32
+ "jest": "^29.7.0",
33
+ "ts-jest": "^29.4.6",
34
+ "typescript": "^5.7.3"
35
+ },
36
+ "keywords": [
37
+ "bridge",
38
+ "cli",
39
+ "ai-agent",
40
+ "management",
41
+ "auth",
42
+ "feature-flags"
43
+ ],
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "https://github.com/thebridgedev/bridge-cli"
47
+ },
48
+ "homepage": "https://thebridge.dev"
49
+ }