@syncbridge/common 2.0.0 → 2.0.1

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 (131) hide show
  1. package/README.md +192 -1
  2. package/app-factory.js +0 -1
  3. package/classes/app-base.js +0 -1
  4. package/classes/base-element.js +0 -1
  5. package/classes/component-base.js +0 -1
  6. package/classes/console-logger.js +0 -1
  7. package/classes/frame-stream.js +0 -1
  8. package/classes/log-channel-writer.js +0 -1
  9. package/classes/runnable.js +0 -1
  10. package/classes/sb-error.js +0 -1
  11. package/classes/stack-executor.js +0 -1
  12. package/constants.d.ts +1 -1
  13. package/constants.js +1 -2
  14. package/decorators/app-events.decorator.js +0 -1
  15. package/decorators/app.decorator.js +0 -1
  16. package/decorators/component.decorator.js +0 -1
  17. package/decorators/decorator-helpers.js +0 -1
  18. package/decorators/define-variable.decorator.js +0 -1
  19. package/decorators/log-channel.decorator.js +0 -1
  20. package/decorators/use-component.decorator.js +0 -1
  21. package/decorators/use-variables.decorator.js +0 -1
  22. package/host-link/host-identity.js +0 -1
  23. package/host-link/host-link.js +0 -1
  24. package/host-link/host-packages.js +0 -1
  25. package/host-link/host-workers.js +0 -1
  26. package/host-link/multiplexer.js +0 -1
  27. package/host-link/sealed-box.js +0 -1
  28. package/index.js +0 -1
  29. package/interfaces/index.js +0 -1
  30. package/interfaces/logger.interface.js +0 -1
  31. package/models/enums/enum-source.enum.js +0 -1
  32. package/models/enums/log-channel-kind.js +0 -1
  33. package/models/enums/log-level.js +0 -1
  34. package/models/enums/service-status.js +0 -1
  35. package/models/enums/variable-format.enum.js +0 -1
  36. package/models/enums/variable-type.enum.js +0 -1
  37. package/models/enums/worker-permission.enum.js +0 -1
  38. package/models/index.js +0 -1
  39. package/models/metadata/app-metadata.js +0 -1
  40. package/models/metadata/component-metadata.js +0 -1
  41. package/models/metadata/element-component-metadata.js +0 -1
  42. package/models/metadata/element-metadata.js +0 -1
  43. package/models/metadata/log-channel-metadata.js +0 -1
  44. package/models/metadata/package-metadata.js +0 -1
  45. package/models/metadata/plugin-metadata.js +0 -1
  46. package/models/metadata/variable-metadata.js +0 -1
  47. package/models/profile/log-options.js +0 -1
  48. package/models/profile/profile-component.js +0 -1
  49. package/models/profile/profile.js +0 -1
  50. package/models-document.js +0 -1
  51. package/package.json +6 -2
  52. package/registry/docs-sidebar.js +0 -1
  53. package/registry/extension-package.js +0 -1
  54. package/registry/extension-registry.js +0 -1
  55. package/registry/module-catalog.js +0 -1
  56. package/registry/package-docs.js +0 -1
  57. package/registry/package-manifest.js +0 -1
  58. package/utils/decode-profile.js +0 -1
  59. package/utils/encrypt-helpers.js +0 -1
  60. package/utils/locate-package-json.js +0 -1
  61. package/utils/materialize-metadata.js +0 -1
  62. package/utils/normalize-metadata.js +0 -1
  63. package/utils/registry-names.js +0 -1
  64. package/utils/resolve-promises.js +0 -1
  65. package/utils/type-guards.js +0 -1
  66. package/utils/uri-to-id.js +0 -1
  67. package/utils/worker-permissions.js +0 -1
  68. package/app-factory.js.map +0 -1
  69. package/classes/app-base.js.map +0 -1
  70. package/classes/base-element.js.map +0 -1
  71. package/classes/component-base.js.map +0 -1
  72. package/classes/console-logger.js.map +0 -1
  73. package/classes/frame-stream.js.map +0 -1
  74. package/classes/log-channel-writer.js.map +0 -1
  75. package/classes/runnable.js.map +0 -1
  76. package/classes/sb-error.js.map +0 -1
  77. package/classes/stack-executor.js.map +0 -1
  78. package/constants.js.map +0 -1
  79. package/decorators/app-events.decorator.js.map +0 -1
  80. package/decorators/app.decorator.js.map +0 -1
  81. package/decorators/component.decorator.js.map +0 -1
  82. package/decorators/decorator-helpers.js.map +0 -1
  83. package/decorators/define-variable.decorator.js.map +0 -1
  84. package/decorators/log-channel.decorator.js.map +0 -1
  85. package/decorators/use-component.decorator.js.map +0 -1
  86. package/decorators/use-variables.decorator.js.map +0 -1
  87. package/host-link/host-identity.js.map +0 -1
  88. package/host-link/host-link.js.map +0 -1
  89. package/host-link/host-packages.js.map +0 -1
  90. package/host-link/host-workers.js.map +0 -1
  91. package/host-link/multiplexer.js.map +0 -1
  92. package/host-link/sealed-box.js.map +0 -1
  93. package/index.js.map +0 -1
  94. package/interfaces/index.js.map +0 -1
  95. package/interfaces/logger.interface.js.map +0 -1
  96. package/models/enums/enum-source.enum.js.map +0 -1
  97. package/models/enums/log-channel-kind.js.map +0 -1
  98. package/models/enums/log-level.js.map +0 -1
  99. package/models/enums/service-status.js.map +0 -1
  100. package/models/enums/variable-format.enum.js.map +0 -1
  101. package/models/enums/variable-type.enum.js.map +0 -1
  102. package/models/enums/worker-permission.enum.js.map +0 -1
  103. package/models/index.js.map +0 -1
  104. package/models/metadata/app-metadata.js.map +0 -1
  105. package/models/metadata/component-metadata.js.map +0 -1
  106. package/models/metadata/element-component-metadata.js.map +0 -1
  107. package/models/metadata/element-metadata.js.map +0 -1
  108. package/models/metadata/log-channel-metadata.js.map +0 -1
  109. package/models/metadata/package-metadata.js.map +0 -1
  110. package/models/metadata/plugin-metadata.js.map +0 -1
  111. package/models/metadata/variable-metadata.js.map +0 -1
  112. package/models/profile/log-options.js.map +0 -1
  113. package/models/profile/profile-component.js.map +0 -1
  114. package/models/profile/profile.js.map +0 -1
  115. package/models-document.js.map +0 -1
  116. package/registry/docs-sidebar.js.map +0 -1
  117. package/registry/extension-package.js.map +0 -1
  118. package/registry/extension-registry.js.map +0 -1
  119. package/registry/module-catalog.js.map +0 -1
  120. package/registry/package-docs.js.map +0 -1
  121. package/registry/package-manifest.js.map +0 -1
  122. package/utils/decode-profile.js.map +0 -1
  123. package/utils/encrypt-helpers.js.map +0 -1
  124. package/utils/locate-package-json.js.map +0 -1
  125. package/utils/materialize-metadata.js.map +0 -1
  126. package/utils/normalize-metadata.js.map +0 -1
  127. package/utils/registry-names.js.map +0 -1
  128. package/utils/resolve-promises.js.map +0 -1
  129. package/utils/type-guards.js.map +0 -1
  130. package/utils/uri-to-id.js.map +0 -1
  131. package/utils/worker-permissions.js.map +0 -1
package/README.md CHANGED
@@ -1 +1,192 @@
1
- # SyncBridge Common Library
1
+ # @syncbridge/common
2
+
3
+ What a SyncBridge module is written against. A module is an npm package
4
+ of **components** - clients, servers, connections - and **apps**, which
5
+ SyncBridge runs as workers, each a Node.js process of its own, made of
6
+ components. This package gives you the decorators that describe them, the
7
+ base classes they extend, and their lifecycle.
8
+
9
+ ```sh
10
+ npm i -D @syncbridge/common
11
+ ```
12
+
13
+ SyncBridge provides `@syncbridge/common` to every module it runs, so a
14
+ module declares it in `peerDependencies`, never in `dependencies`:
15
+
16
+ ```json
17
+ "peerDependencies": { "@syncbridge/common": "^2.0.0" }
18
+ ```
19
+
20
+ Start a module with `npx @syncbridge/syncbuild init @vendor/name`
21
+ ([`@syncbridge/syncbuild`](https://www.npmjs.com/package/@syncbridge/syncbuild)),
22
+ and test it with
23
+ [`@syncbridge/testing`](https://www.npmjs.com/package/@syncbridge/testing).
24
+
25
+ ## A component
26
+
27
+ A component is a class that extends `ComponentBase`, decorated with
28
+ `@Component`. Its settings - shown in SyncBridge's UI and kept in the
29
+ worker's profile - are a variables class, given with `UseVariables`:
30
+
31
+ ```ts
32
+ import {
33
+ Component,
34
+ ComponentBase,
35
+ DefineVariable,
36
+ VariableType,
37
+ } from '@syncbridge/common';
38
+
39
+ export class WeatherClientVariables {
40
+ @DefineVariable({ label: 'API address', required: true })
41
+ declare url: string;
42
+
43
+ @DefineVariable({ label: 'API key', type: VariableType.Secret })
44
+ declare apiKey?: string;
45
+
46
+ @DefineVariable({ label: 'Interval (s)', default: 60, minValue: 5 })
47
+ declare interval: number;
48
+ }
49
+
50
+ @Component({
51
+ displayName: 'Weather client',
52
+ description: 'Reads the weather from a web service',
53
+ tags: ['weather', 'http'],
54
+ })
55
+ export class WeatherClientComponent extends ComponentBase {
56
+ @Component.UseVariables()
57
+ declare values: WeatherClientVariables;
58
+
59
+ protected async _start(abortSignal?: AbortSignal): Promise<void> {
60
+ await super._start(abortSignal);
61
+ this.logger?.info(`Reading ${this.values.url}`);
62
+ }
63
+
64
+ protected async _stop(): Promise<void> {
65
+ /* Close what _start opened */
66
+ await super._stop();
67
+ }
68
+ }
69
+ ```
70
+
71
+ An element's URI is `<package>:<className>`. A component's class name is
72
+ its class's without `Component` (`@acme/weather:WeatherClient`); an app's
73
+ is its class's (`@acme/weather:WeatherStationApp`). Give `className` to
74
+ choose another.
75
+
76
+ ## An app
77
+
78
+ An app extends `AppBase`, decorated with `@App`. It names the components it
79
+ uses with `UseComponent`, by URI. SyncBridge creates them with the values the
80
+ worker's profile gives, and starts them before the app:
81
+
82
+ ```ts
83
+ import { App, AppBase, DefineVariable } from '@syncbridge/common';
84
+ import type { WeatherClientComponent } from './weather-client.component.js';
85
+
86
+ export class WeatherStationVariables {
87
+ @DefineVariable({ label: 'Station name', default: 'Station 1' })
88
+ declare name: string;
89
+ }
90
+
91
+ @App({ displayName: 'Weather station' })
92
+ export class WeatherStationApp extends AppBase {
93
+ @App.UseVariables()
94
+ declare values: WeatherStationVariables;
95
+
96
+ @App.UseComponent({
97
+ uri: '@acme/weather:WeatherClient',
98
+ required: true,
99
+ })
100
+ declare readonly weather: WeatherClientComponent;
101
+
102
+ protected async _start(abortSignal?: AbortSignal): Promise<void> {
103
+ await super._start(abortSignal);
104
+ this.logger?.info(`${this.values.name} started`);
105
+ }
106
+ }
107
+ ```
108
+
109
+ A component may use components too, with `Component.UseComponent`. A URI
110
+ can name another module's component, for example
111
+ `@syncbridge/net:TcpClient`. Declare that module as a peer as well.
112
+
113
+ ## Variables
114
+
115
+ `@DefineVariable` describes a setting. Its type is read from the
116
+ property's TypeScript type when not given. Some options:
117
+
118
+ | Option | Meaning |
119
+ | --- | --- |
120
+ | `label`, `description` | How it is shown |
121
+ | `type` | `VariableType`: `String`, `Secret` (a password or key, kept encrypted in the profile), `Number`, `BigInt`, `Boolean`, `Enum`, `Nested` |
122
+ | `default`, `required` | Its default value, and whether it must be given |
123
+ | `enumValues` | The values of an enum |
124
+ | `enumSource` | Values SyncBridge fills in from the server it runs on: `EnumSource.SerialPorts`, `EnumSource.NetworkAddresses` |
125
+ | `format`, `pattern` | A string's format (`url`, `email`, `date-time`...) or pattern |
126
+ | `minValue`, `maxValue` | A number's range |
127
+ | `isArray` | A list of values |
128
+ | `hotPlug` | A change applies while running, without a restart |
129
+ | `index` | Its order in the UI |
130
+
131
+ ## Lifecycle
132
+
133
+ Apps and components are `Runnable`s. Override the protected methods, and
134
+ always call `super`:
135
+
136
+ - `_init()`: once, before the first start.
137
+ - `_start(abortSignal)`: start working. The signal aborts when a stop comes
138
+ while starting.
139
+ - `_stop()`: stop, and release what `_start` took. Close every timer,
140
+ socket and pool: what is left open is logged as a warning when the
141
+ worker ends.
142
+ - `_restart()`: stop and start in place, for example when values change.
143
+
144
+ `status` is a `ServiceStatus`: `stopped`, `starting`, `started`,
145
+ `unhealthy`, `stopping`. Report trouble with
146
+ `this.setStatus(ServiceStatus.unhealthy, message)`. An app's status
147
+ follows its components'.
148
+
149
+ ## Logging
150
+
151
+ `this.logger` writes the element's log. A log channel is a log of its own
152
+ that the user can turn on, filter and keep apart, such as what a
153
+ connection sends and receives:
154
+
155
+ ```ts
156
+ import { LogChannel } from '@syncbridge/common';
157
+
158
+ @LogChannel({ name: 'communication', title: 'Communication', kind: 'transmit' })
159
+ declare readonly ioLog: LogChannel;
160
+
161
+ // later
162
+ this.ioLog.info('Sent', { bytes: 42 });
163
+ ```
164
+
165
+ ## Permissions
166
+
167
+ SyncBridge runs each worker as a Linux user of its own, under Node's
168
+ permission model. A component or app that needs more than its own data
169
+ directory declares it:
170
+
171
+ ```ts
172
+ @Component({
173
+ displayName: 'Serial client',
174
+ permissions: [WorkerPermission.SerialPorts, WorkerPermission.NativeCode],
175
+ })
176
+ ```
177
+
178
+ - `SerialPorts`: the serial devices.
179
+ - `NativeCode`: native addons (`.node`), such as `serialport` or `oracledb`.
180
+ - `ChildProcesses`: starting other programs.
181
+
182
+ A subclass has its base's permissions. `spm verify` runs a module under
183
+ the permission model and tells you what it failed to declare.
184
+
185
+ ## Examples
186
+
187
+ The modules SyncBridge ships are open source:
188
+ [syncbridge-io/public-modules](https://github.com/syncbridge-io/public-modules).
189
+
190
+ ## License
191
+
192
+ [MIT](LICENSE)
package/app-factory.js CHANGED
@@ -307,4 +307,3 @@ export var AppFactory;
307
307
  }
308
308
  }
309
309
  })(AppFactory || (AppFactory = {}));
310
- //# sourceMappingURL=app-factory.js.map
@@ -8,4 +8,3 @@ export class AppBase extends BaseElement {
8
8
  }
9
9
  const APP_BASE_TOKEN = Symbol.for(AppBase.name);
10
10
  AppBase.prototype[APP_BASE_TOKEN] = true;
11
- //# sourceMappingURL=app-base.js.map
@@ -90,4 +90,3 @@ export class BaseElement extends Runnable {
90
90
  super.onStatusChange();
91
91
  }
92
92
  }
93
- //# sourceMappingURL=base-element.js.map
@@ -12,4 +12,3 @@ export class ComponentBase extends BaseElement {
12
12
  }
13
13
  const COMPONENT_BASE_TOKEN = Symbol.for(ComponentBase.name);
14
14
  ComponentBase.prototype[COMPONENT_BASE_TOKEN] = true;
15
- //# sourceMappingURL=component-base.js.map
@@ -35,4 +35,3 @@ export class ConsoleLogger {
35
35
  return undefined;
36
36
  }
37
37
  }
38
- //# sourceMappingURL=console-logger.js.map
@@ -138,4 +138,3 @@ export class FrameStream extends Transform {
138
138
  this.push(combined);
139
139
  }
140
140
  }
141
- //# sourceMappingURL=frame-stream.js.map
@@ -94,4 +94,3 @@ function eventOf(record) {
94
94
  if (record.direction === 'out')
95
95
  return 'write';
96
96
  }
97
- //# sourceMappingURL=log-channel-writer.js.map
@@ -256,4 +256,3 @@ export class Runnable extends AsyncEventEmitter {
256
256
  }
257
257
  const RUNNABLE_TOKEN = Symbol.for(Runnable.name);
258
258
  Runnable.prototype[RUNNABLE_TOKEN] = true;
259
- //# sourceMappingURL=runnable.js.map
@@ -57,4 +57,3 @@ export class SbError extends Error {
57
57
  */
58
58
  export class SbValidationError extends SbError {
59
59
  }
60
- //# sourceMappingURL=sb-error.js.map
@@ -53,4 +53,3 @@ export class StackExecutor {
53
53
  }
54
54
  }
55
55
  }
56
- //# sourceMappingURL=stack-executor.js.map
package/constants.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const version = "2.0.0";
1
+ export declare const version = "2.0.1";
2
2
  export declare const CLASS_METADATA: unique symbol;
3
3
  export declare const CLASS_TYPE: unique symbol;
4
4
  export declare const VARIABLE_CONTAINER: unique symbol;
package/constants.js CHANGED
@@ -1,4 +1,4 @@
1
- export const version = '2.0.0';
1
+ export const version = '2.0.1';
2
2
  export const CLASS_METADATA = Symbol.for('CLASS_METADATA');
3
3
  export const CLASS_TYPE = Symbol.for('CLASS_TYPE');
4
4
  export const VARIABLE_CONTAINER = Symbol.for('VARIABLE_CONTAINER');
@@ -8,4 +8,3 @@ export const NODE_ENV = process.env.NODE_ENV === 'test'
8
8
  : (process.env.NODE_ENV || '').startsWith('dev')
9
9
  ? 'dev'
10
10
  : 'prod';
11
- //# sourceMappingURL=constants.js.map
@@ -19,4 +19,3 @@ export function OnUpdateProfile() {
19
19
  });
20
20
  };
21
21
  }
22
- //# sourceMappingURL=app-events.decorator.js.map
@@ -92,4 +92,3 @@ export function App(options) {
92
92
  }
93
93
  App.OnUpdateProfile = OnUpdateProfile;
94
94
  })(App || (App = {}));
95
- //# sourceMappingURL=app.decorator.js.map
@@ -84,4 +84,3 @@ export function Component(options) {
84
84
  }
85
85
  Component.UseComponent = UseComponent;
86
86
  })(Component || (Component = {}));
87
- //# sourceMappingURL=component.decorator.js.map
@@ -22,4 +22,3 @@ export function defineOwnMetadata(target, metadataKey, overwrite) {
22
22
  Reflect.defineMetadata(metadataKey, metadata, target);
23
23
  return metadata;
24
24
  }
25
- //# sourceMappingURL=decorator-helpers.js.map
@@ -65,4 +65,3 @@ export function DefineVariable(options = {}) {
65
65
  Reflect.defineMetadata(VARIABLE_CONTAINER, metadataRecord, target);
66
66
  };
67
67
  }
68
- //# sourceMappingURL=define-variable.decorator.js.map
@@ -31,4 +31,3 @@ export function LogChannel(options = {}) {
31
31
  });
32
32
  };
33
33
  }
34
- //# sourceMappingURL=log-channel.decorator.js.map
@@ -26,4 +26,3 @@ export function UseComponent(options = {}) {
26
26
  };
27
27
  };
28
28
  }
29
- //# sourceMappingURL=use-component.decorator.js.map
@@ -16,4 +16,3 @@ export function UseVariables(variablesClass) {
16
16
  Reflect.getMetadata(VARIABLE_CONTAINER, variablesClass.prototype) || {};
17
17
  };
18
18
  }
19
- //# sourceMappingURL=use-variables.decorator.js.map
@@ -137,4 +137,3 @@ export function normalizePairingCode(input) {
137
137
  return;
138
138
  return `${code.slice(0, 4)}-${code.slice(4)}`;
139
139
  }
140
- //# sourceMappingURL=host-identity.js.map
@@ -51,4 +51,3 @@ export function summarizeWorkers(workers) {
51
51
  export const CONSOLE_USER_HEADER = 'x-sb-console-user';
52
52
  export const CONSOLE_USER_NAME_HEADER = 'x-sb-console-user-name';
53
53
  export const CONSOLE_ROLE_HEADER = 'x-sb-console-role';
54
- //# sourceMappingURL=host-link.js.map
@@ -7,4 +7,3 @@
7
7
  */
8
8
  /** Where, under Console's API, a host's packages are planned */
9
9
  export const HOST_PACKAGES_PATH = 'host/packages';
10
- //# sourceMappingURL=host-packages.js.map
@@ -26,4 +26,3 @@ export function mapProfileStrings(value, fn) {
26
26
  }
27
27
  /** Where, under Console's API, a host reinstalled takes its workers back */
28
28
  export const HOST_WORKERS_RESTORE_PATH = 'host/workers/restore';
29
- //# sourceMappingURL=host-workers.js.map
@@ -286,4 +286,3 @@ function parseJson(payload) {
286
286
  return undefined;
287
287
  }
288
288
  }
289
- //# sourceMappingURL=multiplexer.js.map
@@ -101,4 +101,3 @@ export function openSealed(privateKey, sealed) {
101
101
  decipher.final(),
102
102
  ]).toString('utf8');
103
103
  }
104
- //# sourceMappingURL=sealed-box.js.map
package/index.js CHANGED
@@ -37,4 +37,3 @@ export * from './utils/registry-names.js';
37
37
  export * from './utils/type-guards.js';
38
38
  export * from './utils/uri-to-id.js';
39
39
  export * from './utils/worker-permissions.js';
40
- //# sourceMappingURL=index.js.map
@@ -1,2 +1 @@
1
1
  export * from './logger.interface.js';
2
- //# sourceMappingURL=index.js.map
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=logger.interface.js.map
@@ -19,4 +19,3 @@ EnumType(EnumSource, {
19
19
  NetworkAddresses: "The server's IPv4 addresses, its loopback's apart",
20
20
  },
21
21
  });
22
- //# sourceMappingURL=enum-source.enum.js.map
@@ -11,4 +11,3 @@ EnumType(LogChannelKind, {
11
11
  name: 'LogChannelKind',
12
12
  description: "How a log channel's records are shown",
13
13
  });
14
- //# sourceMappingURL=log-channel-kind.js.map
@@ -15,4 +15,3 @@ EnumType(LogLevel, {
15
15
  name: 'LogLevel',
16
16
  description: 'Logging levels',
17
17
  });
18
- //# sourceMappingURL=log-level.js.map
@@ -16,4 +16,3 @@ EnumType(ServiceStatus, {
16
16
  name: 'ServiceStatus',
17
17
  description: 'Status of any service',
18
18
  });
19
- //# sourceMappingURL=service-status.js.map
@@ -13,4 +13,3 @@ EnumType(VariableFormat, {
13
13
  name: 'VariableFormat',
14
14
  description: 'Format of string variable',
15
15
  });
16
- //# sourceMappingURL=variable-format.enum.js.map
@@ -13,4 +13,3 @@ EnumType(VariableType, {
13
13
  name: 'VariableType',
14
14
  description: 'Data type of the variable',
15
15
  });
16
- //# sourceMappingURL=variable-type.enum.js.map
@@ -25,4 +25,3 @@ EnumType(WorkerPermission, {
25
25
  ChildProcesses: "Starting other programs, outside Node's permission model too",
26
26
  },
27
27
  });
28
- //# sourceMappingURL=worker-permission.enum.js.map
package/models/index.js CHANGED
@@ -15,4 +15,3 @@ export * from './metadata/variable-metadata.js';
15
15
  export * from './profile/log-options.js';
16
16
  export * from './profile/profile.js';
17
17
  export * from './profile/profile-component.js';
18
- //# sourceMappingURL=index.js.map
@@ -20,4 +20,3 @@ AppMetadata = __decorate([
20
20
  __metadata("design:paramtypes", [Object])
21
21
  ], AppMetadata);
22
22
  export { AppMetadata };
23
- //# sourceMappingURL=app-metadata.js.map
@@ -30,4 +30,3 @@ ComponentMetadata = __decorate([
30
30
  __metadata("design:paramtypes", [Object])
31
31
  ], ComponentMetadata);
32
32
  export { ComponentMetadata };
33
- //# sourceMappingURL=component-metadata.js.map
@@ -86,4 +86,3 @@ ElementComponentMetadata = __decorate([
86
86
  })
87
87
  ], ElementComponentMetadata);
88
88
  export { ElementComponentMetadata };
89
- //# sourceMappingURL=element-component-metadata.js.map
@@ -126,4 +126,3 @@ ElementMetadata = __decorate([
126
126
  __metadata("design:paramtypes", [Object])
127
127
  ], ElementMetadata);
128
128
  export { ElementMetadata };
129
- //# sourceMappingURL=element-metadata.js.map
@@ -70,4 +70,3 @@ LogChannelMetadata = __decorate([
70
70
  __metadata("design:paramtypes", [Object])
71
71
  ], LogChannelMetadata);
72
72
  export { LogChannelMetadata };
73
- //# sourceMappingURL=log-channel-metadata.js.map
@@ -25,4 +25,3 @@ PackageMetadata = __decorate([
25
25
  __metadata("design:paramtypes", [Object])
26
26
  ], PackageMetadata);
27
27
  export { PackageMetadata };
28
- //# sourceMappingURL=package-metadata.js.map
@@ -63,4 +63,3 @@ PluginMetadata = __decorate([
63
63
  __metadata("design:paramtypes", [Object])
64
64
  ], PluginMetadata);
65
65
  export { PluginMetadata };
66
- //# sourceMappingURL=plugin-metadata.js.map
@@ -174,4 +174,3 @@ VariableMetadata = __decorate([
174
174
  })
175
175
  ], VariableMetadata);
176
176
  export { VariableMetadata };
177
- //# sourceMappingURL=variable-metadata.js.map
@@ -109,4 +109,3 @@ ProfileLogOptions = __decorate([
109
109
  __metadata("design:paramtypes", [Object])
110
110
  ], ProfileLogOptions);
111
111
  export { ProfileLogOptions };
112
- //# sourceMappingURL=log-options.js.map
@@ -82,4 +82,3 @@ ProfileComponent = __decorate([
82
82
  })
83
83
  ], ProfileComponent);
84
84
  export { ProfileComponent };
85
- //# sourceMappingURL=profile-component.js.map
@@ -120,4 +120,3 @@ Profile = __decorate([
120
120
  __metadata("design:paramtypes", [Object])
121
121
  ], Profile);
122
122
  export { Profile };
123
- //# sourceMappingURL=profile.js.map
@@ -17,4 +17,3 @@ export function getModelsDocument() {
17
17
  });
18
18
  return doc;
19
19
  }
20
- //# sourceMappingURL=models-document.js.map
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@syncbridge/common",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "SyncBridge Common utilities",
5
5
  "author": "Panates Inc",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/syncbridge-io/syncbridge.git",
9
+ "url": "git+https://github.com/syncbridge-io/node-sdk.git",
10
10
  "directory": "packages/common"
11
11
  },
12
12
  "dependencies": {
@@ -37,5 +37,9 @@
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public"
40
+ },
41
+ "homepage": "https://github.com/syncbridge-io/node-sdk/tree/main/packages/common#readme",
42
+ "bugs": {
43
+ "url": "https://github.com/syncbridge-io/node-sdk/issues"
40
44
  }
41
45
  }
@@ -167,4 +167,3 @@ export function sidebarDocs(sidebar) {
167
167
  walk(sidebar.items);
168
168
  return out;
169
169
  }
170
- //# sourceMappingURL=docs-sidebar.js.map
@@ -144,4 +144,3 @@ export class PluginExtension {
144
144
  return ctor;
145
145
  }
146
146
  }
147
- //# sourceMappingURL=extension-package.js.map
@@ -353,4 +353,3 @@ export class ExtensionRegistry extends AsyncEventEmitter {
353
353
  this.emitSafe('register-package', pkg);
354
354
  }
355
355
  }
356
- //# sourceMappingURL=extension-registry.js.map
@@ -86,4 +86,3 @@ function extensionOf(file) {
86
86
  const dot = base.lastIndexOf('.');
87
87
  return dot > 0 ? base.slice(dot).toLowerCase() : '';
88
88
  }
89
- //# sourceMappingURL=module-catalog.js.map
@@ -157,4 +157,3 @@ export async function packageDigest(files) {
157
157
  .map(b => b.toString(16).padStart(2, '0'))
158
158
  .join('');
159
159
  }
160
- //# sourceMappingURL=package-docs.js.map
@@ -57,4 +57,3 @@ export function readExtensionManifest(packageDir, pkgJson) {
57
57
  export function manifestOf(packageDir, pkgJson) {
58
58
  return readExtensionManifest(packageDir, pkgJson)?.manifest;
59
59
  }
60
- //# sourceMappingURL=package-manifest.js.map
@@ -347,4 +347,3 @@ function _codecValues(stackExecutor, codec, variables, oldValues, options) {
347
347
  process(variables, values, oldValues);
348
348
  return values;
349
349
  }
350
- //# sourceMappingURL=decode-profile.js.map
@@ -48,4 +48,3 @@ function decryptText(input, secretKey) {
48
48
  ]);
49
49
  return decrypted.toString('utf8');
50
50
  }
51
- //# sourceMappingURL=encrypt-helpers.js.map
@@ -22,4 +22,3 @@ export function resolvePackageJson(directory) {
22
22
  const content = fs.readFileSync(path.resolve(pkg, 'package.json'), 'utf-8');
23
23
  return JSON.parse(content);
24
24
  }
25
- //# sourceMappingURL=locate-package-json.js.map
@@ -146,4 +146,3 @@ function sortVariables(variables) {
146
146
  return a;
147
147
  }, {});
148
148
  }
149
- //# sourceMappingURL=materialize-metadata.js.map
@@ -200,4 +200,3 @@ async function getProcMetadataTypeDecoder() {
200
200
  }
201
201
  return _procMetadataTypeDecoder;
202
202
  }
203
- //# sourceMappingURL=normalize-metadata.js.map
@@ -106,4 +106,3 @@ export function parseSbSpecifier(specifier) {
106
106
  assertRegistryName(m[1]);
107
107
  return { name: m[1], subpath: m[2] ? '.' + m[2] : '.' };
108
108
  }
109
- //# sourceMappingURL=registry-names.js.map
@@ -8,4 +8,3 @@ export async function resolvePromisesDeep(obj) {
8
8
  }
9
9
  return obj;
10
10
  }
11
- //# sourceMappingURL=resolve-promises.js.map
@@ -13,4 +13,3 @@ export function isAppBase(proto) {
13
13
  export function isComponentBase(proto) {
14
14
  return !!proto[COMPONENT_BASE_TOKEN];
15
15
  }
16
- //# sourceMappingURL=type-guards.js.map
@@ -5,4 +5,3 @@ export function uriToId(uri) {
5
5
  .replace(/\W/g, '_')
6
6
  .toLowerCase();
7
7
  }
8
- //# sourceMappingURL=uri-to-id.js.map
@@ -57,4 +57,3 @@ function realpathOf(p) {
57
57
  return p;
58
58
  }
59
59
  }
60
- //# sourceMappingURL=worker-permissions.js.map