@powersync/service-sync-rules 0.18.1 → 0.18.3

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.
@@ -1,10 +1,10 @@
1
1
  import { SchemaGenerator } from './SchemaGenerator.js';
2
2
  import { SqlSyncRules } from './SqlSyncRules.js';
3
3
  import { SourceSchema } from './types.js';
4
- export declare class JsSchemaGenerator extends SchemaGenerator {
5
- readonly key = "js";
6
- readonly label = "JavaScript";
7
- readonly mediaType = "application/javascript";
4
+ export declare class JsLegacySchemaGenerator extends SchemaGenerator {
5
+ readonly key = "jsLegacy";
6
+ readonly label = "JavaScript (legacy syntax)";
7
+ readonly mediaType = "text/javascript";
8
8
  readonly fileName = "schema.js";
9
9
  generate(source: SqlSyncRules, schema: SourceSchema): string;
10
10
  private generateTable;
@@ -1,11 +1,11 @@
1
1
  import { TYPE_INTEGER, TYPE_REAL, TYPE_TEXT } from './ExpressionType.js';
2
2
  import { SchemaGenerator } from './SchemaGenerator.js';
3
- export class JsSchemaGenerator extends SchemaGenerator {
3
+ export class JsLegacySchemaGenerator extends SchemaGenerator {
4
4
  constructor() {
5
5
  super(...arguments);
6
- this.key = 'js';
7
- this.label = 'JavaScript';
8
- this.mediaType = 'application/javascript';
6
+ this.key = 'jsLegacy';
7
+ this.label = 'JavaScript (legacy syntax)';
8
+ this.mediaType = 'text/javascript';
9
9
  this.fileName = 'schema.js';
10
10
  }
11
11
  generate(source, schema) {
@@ -39,4 +39,4 @@ export class JsSchemaGenerator extends SchemaGenerator {
39
39
  }
40
40
  }
41
41
  }
42
- //# sourceMappingURL=JsSchemaGenerator.js.map
42
+ //# sourceMappingURL=JsLegacySchemaGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsLegacySchemaGenerator.js","sourceRoot":"","sources":["../src/JsLegacySchemaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAA5D;;QACW,QAAG,GAAG,UAAU,CAAC;QACjB,UAAK,GAAG,4BAA4B,CAAC;QACrC,cAAS,GAAG,iBAAiB,CAAC;QAC9B,aAAQ,GAAG,WAAW,CAAC;IAgClC,CAAC;IA9BC,QAAQ,CAAC,MAAoB,EAAE,MAAoB;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO;IACP,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;CAErF,CAAC;IACA,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,OAA2B;QAC7D,OAAO;aACE,IAAI;;QAET,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;;KAE/D,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,MAAwB;QAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE;YAC3B,OAAO,uBAAuB,MAAM,CAAC,IAAI,6BAA6B,CAAC;SACxE;aAAM,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE;YAClC,OAAO,uBAAuB,MAAM,CAAC,IAAI,6BAA6B,CAAC;SACxE;aAAM,IAAI,CAAC,CAAC,SAAS,GAAG,YAAY,EAAE;YACrC,OAAO,uBAAuB,MAAM,CAAC,IAAI,gCAAgC,CAAC;SAC3E;aAAM;YACL,OAAO,uBAAuB,MAAM,CAAC,IAAI,6BAA6B,CAAC;SACxE;IACH,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ import { SchemaGenerator } from './SchemaGenerator.js';
2
+ import { SqlSyncRules } from './SqlSyncRules.js';
3
+ import { SourceSchema } from './types.js';
4
+ export interface TsSchemaGeneratorOptions {
5
+ language?: TsSchemaLanguage;
6
+ imports?: TsSchemaImports;
7
+ }
8
+ export declare enum TsSchemaLanguage {
9
+ ts = "ts",
10
+ /** Excludes types from the generated schema. */
11
+ js = "js"
12
+ }
13
+ export declare enum TsSchemaImports {
14
+ web = "web",
15
+ reactNative = "reactNative",
16
+ /**
17
+ * Emits imports for `@powersync/web`, with comments for `@powersync/react-native`.
18
+ */
19
+ auto = "auto"
20
+ }
21
+ export declare class TsSchemaGenerator extends SchemaGenerator {
22
+ readonly options: TsSchemaGeneratorOptions;
23
+ readonly key: string;
24
+ readonly fileName: string;
25
+ readonly mediaType: string;
26
+ readonly label: string;
27
+ readonly language: TsSchemaLanguage;
28
+ constructor(options?: TsSchemaGeneratorOptions);
29
+ generate(source: SqlSyncRules, schema: SourceSchema): string;
30
+ private generateTypeExports;
31
+ private generateImports;
32
+ private generateTable;
33
+ private generateColumn;
34
+ }
@@ -0,0 +1,93 @@
1
+ import { TYPE_INTEGER, TYPE_REAL, TYPE_TEXT } from './ExpressionType.js';
2
+ import { SchemaGenerator } from './SchemaGenerator.js';
3
+ export var TsSchemaLanguage;
4
+ (function (TsSchemaLanguage) {
5
+ TsSchemaLanguage["ts"] = "ts";
6
+ /** Excludes types from the generated schema. */
7
+ TsSchemaLanguage["js"] = "js";
8
+ })(TsSchemaLanguage || (TsSchemaLanguage = {}));
9
+ export var TsSchemaImports;
10
+ (function (TsSchemaImports) {
11
+ TsSchemaImports["web"] = "web";
12
+ TsSchemaImports["reactNative"] = "reactNative";
13
+ /**
14
+ * Emits imports for `@powersync/web`, with comments for `@powersync/react-native`.
15
+ */
16
+ TsSchemaImports["auto"] = "auto";
17
+ })(TsSchemaImports || (TsSchemaImports = {}));
18
+ export class TsSchemaGenerator extends SchemaGenerator {
19
+ constructor(options = {}) {
20
+ super();
21
+ this.options = options;
22
+ this.language = options.language ?? TsSchemaLanguage.ts;
23
+ this.key = this.language;
24
+ if (this.language == TsSchemaLanguage.ts) {
25
+ this.fileName = 'schema.ts';
26
+ this.mediaType = 'text/typescript';
27
+ this.label = 'TypeScript';
28
+ }
29
+ else {
30
+ this.fileName = 'schema.js';
31
+ this.mediaType = 'text/javascript';
32
+ this.label = 'JavaScript';
33
+ }
34
+ }
35
+ generate(source, schema) {
36
+ const tables = super.getAllTables(source, schema);
37
+ return `${this.generateImports()}
38
+
39
+ ${tables.map((table) => this.generateTable(table.name, table.columns)).join('\n\n')}
40
+
41
+ export const AppSchema = new Schema({
42
+ ${tables.map((table) => table.name).join(',\n ')}
43
+ });
44
+
45
+ ${this.generateTypeExports()}`;
46
+ }
47
+ generateTypeExports() {
48
+ if (this.language == TsSchemaLanguage.ts) {
49
+ return `export type Database = (typeof AppSchema)['types'];\n`;
50
+ }
51
+ else {
52
+ return ``;
53
+ }
54
+ }
55
+ generateImports() {
56
+ const importStyle = this.options.imports ?? 'auto';
57
+ if (importStyle == TsSchemaImports.web) {
58
+ return `import { column, Schema, Table } from '@powersync/web';`;
59
+ }
60
+ else if (importStyle == TsSchemaImports.reactNative) {
61
+ return `import { column, Schema, Table } from '@powersync/react-native';`;
62
+ }
63
+ else {
64
+ return `import { column, Schema, Table } from '@powersync/web';
65
+ // OR: import { column, Schema, Table } from '@powersync/react-native';`;
66
+ }
67
+ }
68
+ generateTable(name, columns) {
69
+ return `const ${name} = new Table(
70
+ {
71
+ // id column (text) is automatically included
72
+ ${columns.map((c) => this.generateColumn(c)).join(',\n ')}
73
+ },
74
+ { indexes: {} }
75
+ );`;
76
+ }
77
+ generateColumn(column) {
78
+ const t = column.type;
79
+ if (t.typeFlags & TYPE_TEXT) {
80
+ return `${column.name}: column.text`;
81
+ }
82
+ else if (t.typeFlags & TYPE_REAL) {
83
+ return `${column.name}: column.real`;
84
+ }
85
+ else if (t.typeFlags & TYPE_INTEGER) {
86
+ return `${column.name}: column.integer`;
87
+ }
88
+ else {
89
+ return `${column.name}: column.text`;
90
+ }
91
+ }
92
+ }
93
+ //# sourceMappingURL=TsSchemaGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TsSchemaGenerator.js","sourceRoot":"","sources":["../src/TsSchemaGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import { DartSchemaGenerator } from './DartSchemaGenerator.js';
2
- import { JsSchemaGenerator } from './JsSchemaGenerator.js';
2
+ import { JsLegacySchemaGenerator } from './JsLegacySchemaGenerator.js';
3
+ import { TsSchemaGenerator } from './TsSchemaGenerator.js';
3
4
  export declare const schemaGenerators: {
4
- js: JsSchemaGenerator;
5
+ ts: TsSchemaGenerator;
6
+ js: TsSchemaGenerator;
7
+ jsLegacy: JsLegacySchemaGenerator;
5
8
  dart: DartSchemaGenerator;
6
9
  };
@@ -1,7 +1,10 @@
1
1
  import { DartSchemaGenerator } from './DartSchemaGenerator.js';
2
- import { JsSchemaGenerator } from './JsSchemaGenerator.js';
2
+ import { JsLegacySchemaGenerator } from './JsLegacySchemaGenerator.js';
3
+ import { TsSchemaGenerator, TsSchemaLanguage } from './TsSchemaGenerator.js';
3
4
  export const schemaGenerators = {
4
- js: new JsSchemaGenerator(),
5
+ ts: new TsSchemaGenerator(),
6
+ js: new TsSchemaGenerator({ language: TsSchemaLanguage.js }),
7
+ jsLegacy: new JsLegacySchemaGenerator(),
5
8
  dart: new DartSchemaGenerator()
6
9
  };
7
10
  //# sourceMappingURL=generators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generators.js","sourceRoot":"","sources":["../src/generators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,EAAE,IAAI,iBAAiB,EAAE;IAC3B,IAAI,EAAE,IAAI,mBAAmB,EAAE;CAChC,CAAC"}
1
+ {"version":3,"file":"generators.js","sourceRoot":"","sources":["../src/generators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,EAAE,IAAI,iBAAiB,EAAE;IAC3B,EAAE,EAAE,IAAI,iBAAiB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC;IAC5D,QAAQ,EAAE,IAAI,uBAAuB,EAAE;IACvC,IAAI,EAAE,IAAI,mBAAmB,EAAE;CAChC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -13,7 +13,8 @@ export * from './StaticSchema.js';
13
13
  export * from './ExpressionType.js';
14
14
  export * from './SchemaGenerator.js';
15
15
  export * from './DartSchemaGenerator.js';
16
- export * from './JsSchemaGenerator.js';
16
+ export * from './JsLegacySchemaGenerator.js';
17
+ export * from './TsSchemaGenerator.js';
17
18
  export * from './generators.js';
18
19
  export * from './SqlDataQuery.js';
19
20
  export * from './request_functions.js';
package/dist/index.js CHANGED
@@ -13,7 +13,8 @@ export * from './StaticSchema.js';
13
13
  export * from './ExpressionType.js';
14
14
  export * from './SchemaGenerator.js';
15
15
  export * from './DartSchemaGenerator.js';
16
- export * from './JsSchemaGenerator.js';
16
+ export * from './JsLegacySchemaGenerator.js';
17
+ export * from './TsSchemaGenerator.js';
17
18
  export * from './generators.js';
18
19
  export * from './SqlDataQuery.js';
19
20
  export * from './request_functions.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powersync/service-sync-rules",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "version": "0.18.1",
4
+ "version": "0.18.3",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "license": "FSL-1.1-Apache-2.0",
@@ -20,8 +20,8 @@
20
20
  "@powersync/service-jsonbig": "^0.17.10"
21
21
  },
22
22
  "devDependencies": {
23
- "@types/node": "18.11.11",
24
- "vitest": "^0.34.6"
23
+ "@types/node": "18.19.50",
24
+ "vitest": "^2.0.5"
25
25
  },
26
26
  "scripts": {
27
27
  "clean": "rm -r ./dist && tsc -b --clean",
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsSchemaGenerator.js","sourceRoot":"","sources":["../src/JsSchemaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IAAtD;;QACW,QAAG,GAAG,IAAI,CAAC;QACX,UAAK,GAAG,YAAY,CAAC;QACrB,cAAS,GAAG,wBAAwB,CAAC;QACrC,aAAQ,GAAG,WAAW,CAAC;IAgClC,CAAC;IA9BC,QAAQ,CAAC,MAAoB,EAAE,MAAoB;QACjD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO;IACP,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;;CAErF,CAAC;IACA,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,OAA2B;QAC7D,OAAO;aACE,IAAI;;QAET,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;;KAE/D,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,MAAwB;QAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE;YAC3B,OAAO,uBAAuB,MAAM,CAAC,IAAI,6BAA6B,CAAC;SACxE;aAAM,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,EAAE;YAClC,OAAO,uBAAuB,MAAM,CAAC,IAAI,6BAA6B,CAAC;SACxE;aAAM,IAAI,CAAC,CAAC,SAAS,GAAG,YAAY,EAAE;YACrC,OAAO,uBAAuB,MAAM,CAAC,IAAI,gCAAgC,CAAC;SAC3E;aAAM;YACL,OAAO,uBAAuB,MAAM,CAAC,IAAI,6BAA6B,CAAC;SACxE;IACH,CAAC;CACF"}