@powersync/lib-services-framework 0.0.0-dev-20250117095455 → 0.0.0-dev-20250122110924

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/dist/container.js CHANGED
@@ -2,6 +2,7 @@ import _ from 'lodash';
2
2
  import { NoOpReporter } from './alerts/no-op-reporter.js';
3
3
  import { MigrationManager } from './migrations/MigrationManager.js';
4
4
  import { createFSProbe, createTerminationHandler } from './signals/signals-index.js';
5
+ import { ServiceAssertionError } from '@powersync/service-errors';
5
6
  export var ContainerImplementation;
6
7
  (function (ContainerImplementation) {
7
8
  ContainerImplementation["REPORTER"] = "reporter";
@@ -50,7 +51,7 @@ export class Container {
50
51
  getImplementation(identifier) {
51
52
  const implementation = this.implementations.get(identifier);
52
53
  if (!implementation) {
53
- throw new Error(`Implementation for ${String(identifier)} has not been registered.`);
54
+ throw new ServiceAssertionError(`Implementation for ${String(identifier)} has not been registered.`);
54
55
  }
55
56
  return implementation;
56
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAmC,aAAa,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtH,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,gDAAqB,CAAA;IACrB,4CAAiB,CAAA;IACjB,sEAA2C,CAAA;IAC3C,kEAAuC,CAAA;AACzC,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;AAiCD,MAAM,kBAAkB,GAA6C;IACnE,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY;IACtD,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE;IACvD,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,wBAAwB,EAAE;IAC/E,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE;CAC1E,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,SAAS;IAGpB;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAED;QACE,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;IACnC,CAAC;IAWD,iBAAiB,CAAI,UAAgC;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAWD,WAAW,CAAI,UAAgC;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAiC;QAChD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACzF,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAI,UAAgC,EAAE,cAAiB;QAC7D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- export * from './framework-errors.js';
2
- export * from './utils.js';
1
+ export * from '@powersync/service-errors';
@@ -1,3 +1,2 @@
1
- export * from './framework-errors.js';
2
- export * from './utils.js';
1
+ export * from '@powersync/service-errors';
3
2
  //# sourceMappingURL=errors-index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors-index.js","sourceRoot":"","sources":["../../src/errors/errors-index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"errors-index.js","sourceRoot":"","sources":["../../src/errors/errors-index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
package/dist/ip/lookup.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as net from 'node:net';
2
2
  import * as dnsp from 'node:dns/promises';
3
3
  import ip from 'ipaddr.js';
4
+ import { ErrorCode, ServiceError } from '@powersync/service-errors';
4
5
  /**
5
6
  * Generate a custom DNS lookup function, that rejects specific IP ranges.
6
7
  *
@@ -55,16 +56,17 @@ export function validateIpHostname(hostname, options) {
55
56
  // Treat as a DNS name.
56
57
  return;
57
58
  }
58
- const parsed = ip.parse(hostname);
59
+ const ipaddr = hostname;
60
+ const parsed = ip.parse(ipaddr);
59
61
  const rejectLocal = reject_ranges.includes('local');
60
62
  const rejectSubnets = reject_ranges.filter((range) => range != 'local');
61
63
  const reject = { blocked: (rejectSubnets ?? []).map((r) => ip.parseCIDR(r)) };
62
64
  if (options.reject_ipv6 && parsed.kind() == 'ipv6') {
63
- throw new Error('IPv6 not supported');
65
+ throw new ServiceError(ErrorCode.PSYNC_S2202, 'IPv6 support not enabled for JWKS URI');
64
66
  }
65
67
  if (ip.subnetMatch(parsed, reject) == 'blocked') {
66
68
  // Ranges explicitly blocked, e.g. private IPv6 ranges
67
- throw new Error(`IPs in this range are not supported: ${hostname}`);
69
+ throw new ServiceError(ErrorCode.PSYNC_S2203, `IPs in this range are not supported: ${ipaddr}`);
68
70
  }
69
71
  if (!rejectLocal) {
70
72
  return;
@@ -79,7 +81,7 @@ export function validateIpHostname(hostname, options) {
79
81
  }
80
82
  else {
81
83
  // Do not connect to any reserved IPs, including loopback and private ranges
82
- throw new Error(`IPs in this range are not supported: ${hostname}`);
84
+ throw new ServiceError(ErrorCode.PSYNC_S2203, `IPs in this range are not supported: ${ipaddr}`);
83
85
  }
84
86
  }
85
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/ip/lookup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/ip/lookup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powersync/lib-services-framework",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "version": "0.0.0-dev-20250117095455",
4
+ "version": "0.0.0-dev-20250122110924",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "types": "dist/index.d.ts",
@@ -23,7 +23,8 @@
23
23
  "ts-codec": "^1.3.0",
24
24
  "uuid": "^9.0.1",
25
25
  "winston": "^3.13.0",
26
- "zod": "^3.23.8"
26
+ "zod": "^3.23.8",
27
+ "@powersync/service-errors": "0.0.0-dev-20250122110924"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@types/lodash": "^4.17.5",
@@ -1,51 +0,0 @@
1
- export declare enum ErrorSeverity {
2
- INFO = "info",
3
- WARNING = "warning",
4
- ERROR = "error"
5
- }
6
- export type ErrorData = {
7
- name?: string;
8
- code: string;
9
- description: string;
10
- severity?: ErrorSeverity;
11
- details?: string;
12
- status?: number;
13
- stack?: string;
14
- origin?: string;
15
- trace_id?: string;
16
- };
17
- export declare class JourneyError extends Error {
18
- is_journey_error: boolean;
19
- errorData: ErrorData;
20
- static isJourneyError(input: any): input is JourneyError;
21
- private static errorMessage;
22
- constructor(data: ErrorData);
23
- toString(): string | undefined;
24
- toJSON(): ErrorData;
25
- setTraceId(id: string): void;
26
- }
27
- export declare class ValidationError extends JourneyError {
28
- static CODE: string;
29
- constructor(errors: any);
30
- }
31
- export declare class AuthorizationError extends JourneyError {
32
- static CODE: string;
33
- constructor(errors: any);
34
- }
35
- export declare class InternalServerError extends JourneyError {
36
- static CODE: string;
37
- constructor(err: Error);
38
- }
39
- export declare class ResourceNotFound extends JourneyError {
40
- static CODE: string;
41
- /**
42
- * @deprecated Use the (resource, id) constructor instead.
43
- * @param id
44
- */
45
- constructor(id: string);
46
- constructor(resource: string, id: string);
47
- }
48
- export declare class ResourceConflict extends JourneyError {
49
- static CODE: string;
50
- constructor(details: string);
51
- }
@@ -1,111 +0,0 @@
1
- export var ErrorSeverity;
2
- (function (ErrorSeverity) {
3
- ErrorSeverity["INFO"] = "info";
4
- ErrorSeverity["WARNING"] = "warning";
5
- ErrorSeverity["ERROR"] = "error";
6
- })(ErrorSeverity || (ErrorSeverity = {}));
7
- // Maybe this could be renamed to ServiceError or something similar
8
- export class JourneyError extends Error {
9
- static isJourneyError(input) {
10
- return input instanceof JourneyError || input?.is_journey_error == true;
11
- }
12
- static errorMessage(data) {
13
- let message = `[${data.code}] ${data.description}`;
14
- if (data.details) {
15
- message += `\n ${data.details}`;
16
- }
17
- return message;
18
- }
19
- constructor(data) {
20
- super(JourneyError.errorMessage(data));
21
- this.is_journey_error = true;
22
- this.errorData = data;
23
- if (data.stack) {
24
- this.stack = data.stack;
25
- }
26
- this.name = data.name || this.constructor.name;
27
- this.errorData.name = this.name;
28
- }
29
- toString() {
30
- return this.stack;
31
- }
32
- toJSON() {
33
- if (process.env.NODE_ENV !== 'production') {
34
- return this.errorData;
35
- }
36
- return {
37
- name: this.errorData.name,
38
- code: this.errorData.code,
39
- status: this.errorData.status,
40
- description: this.errorData.description,
41
- details: this.errorData.details,
42
- trace_id: this.errorData.trace_id,
43
- severity: this.errorData.severity,
44
- origin: this.errorData.origin
45
- };
46
- }
47
- setTraceId(id) {
48
- this.errorData.trace_id = id;
49
- }
50
- }
51
- export class ValidationError extends JourneyError {
52
- constructor(errors) {
53
- super({
54
- code: ValidationError.CODE,
55
- status: 400,
56
- description: 'Validation failed',
57
- details: JSON.stringify(errors)
58
- });
59
- }
60
- }
61
- ValidationError.CODE = 'VALIDATION_ERROR';
62
- export class AuthorizationError extends JourneyError {
63
- constructor(errors) {
64
- super({
65
- code: AuthorizationError.CODE,
66
- status: 401,
67
- description: 'Authorization failed',
68
- details: errors
69
- });
70
- }
71
- }
72
- AuthorizationError.CODE = 'AUTHORIZATION';
73
- export class InternalServerError extends JourneyError {
74
- constructor(err) {
75
- super({
76
- code: InternalServerError.CODE,
77
- severity: ErrorSeverity.ERROR,
78
- status: 500,
79
- description: 'Something went wrong',
80
- details: err.message,
81
- stack: process.env.NODE_ENV !== 'production' ? err.stack : undefined
82
- });
83
- }
84
- }
85
- InternalServerError.CODE = 'INTERNAL_SERVER_ERROR';
86
- export class ResourceNotFound extends JourneyError {
87
- constructor(resource, id) {
88
- const combinedId = id ? `${resource}/${id}` : resource;
89
- super({
90
- code: ResourceNotFound.CODE,
91
- status: 404,
92
- description: 'The requested resource does not exist on this server',
93
- details: `The resource ${combinedId} does not exist on this server`,
94
- severity: ErrorSeverity.INFO
95
- });
96
- }
97
- }
98
- ResourceNotFound.CODE = 'RESOURCE_NOT_FOUND';
99
- export class ResourceConflict extends JourneyError {
100
- constructor(details) {
101
- super({
102
- code: ResourceConflict.CODE,
103
- status: 409,
104
- description: 'The specified resource already exists on this server',
105
- details: details,
106
- severity: ErrorSeverity.INFO
107
- });
108
- }
109
- }
110
- ResourceConflict.CODE = 'RESOURCE_CONFLICT';
111
- //# sourceMappingURL=framework-errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"framework-errors.js","sourceRoot":"","sources":["../../src/errors/framework-errors.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { ErrorData, JourneyError } from './framework-errors.js';
2
- export declare const isJourneyError: (err: any) => err is JourneyError;
3
- export declare const getErrorData: (err: Error | any) => ErrorData | undefined;
4
- export declare const matchesErrorCode: (err: Error | any, code: string) => boolean;
@@ -1,18 +0,0 @@
1
- import { JourneyError } from './framework-errors.js';
2
- export const isJourneyError = (err) => {
3
- const matches = JourneyError.isJourneyError(err);
4
- return !!matches;
5
- };
6
- export const getErrorData = (err) => {
7
- if (!isJourneyError(err)) {
8
- return;
9
- }
10
- return err.toJSON();
11
- };
12
- export const matchesErrorCode = (err, code) => {
13
- if (isJourneyError(err)) {
14
- return err.errorData.code === code;
15
- }
16
- return false;
17
- };
18
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/errors/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAuB,EAAE;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAgB,EAAyB,EAAE;IACtE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAgB,EAAE,IAAY,EAAE,EAAE;IACjE,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}