@livestore/common 0.0.47 → 0.0.48-dev.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 (108) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/__tests__/fixture.d.ts +68 -0
  3. package/dist/__tests__/fixture.d.ts.map +1 -0
  4. package/dist/__tests__/fixture.js +16 -0
  5. package/dist/__tests__/fixture.js.map +1 -0
  6. package/dist/adapter-types.d.ts +86 -0
  7. package/dist/adapter-types.d.ts.map +1 -0
  8. package/dist/adapter-types.js +2 -0
  9. package/dist/adapter-types.js.map +1 -0
  10. package/dist/derived-mutations.d.ts +107 -0
  11. package/dist/derived-mutations.d.ts.map +1 -0
  12. package/dist/derived-mutations.js +52 -0
  13. package/dist/derived-mutations.js.map +1 -0
  14. package/dist/derived-mutations.test.d.ts +2 -0
  15. package/dist/derived-mutations.test.d.ts.map +1 -0
  16. package/dist/derived-mutations.test.js +92 -0
  17. package/dist/derived-mutations.test.js.map +1 -0
  18. package/dist/index.d.ts +6 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +6 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/init-singleton-tables.d.ts +2 -2
  23. package/dist/init-singleton-tables.d.ts.map +1 -1
  24. package/dist/init-singleton-tables.js.map +1 -1
  25. package/dist/mutation.d.ts.map +1 -1
  26. package/dist/query-info.d.ts +47 -0
  27. package/dist/query-info.d.ts.map +1 -0
  28. package/dist/query-info.js +38 -0
  29. package/dist/query-info.js.map +1 -0
  30. package/dist/rehydrate-from-mutationlog.d.ts +6 -5
  31. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
  32. package/dist/rehydrate-from-mutationlog.js +24 -7
  33. package/dist/rehydrate-from-mutationlog.js.map +1 -1
  34. package/dist/schema/index.d.ts +33 -23
  35. package/dist/schema/index.d.ts.map +1 -1
  36. package/dist/schema/index.js +31 -15
  37. package/dist/schema/index.js.map +1 -1
  38. package/dist/schema/mutations.d.ts +16 -0
  39. package/dist/schema/mutations.d.ts.map +1 -1
  40. package/dist/schema/mutations.js +18 -8
  41. package/dist/schema/mutations.js.map +1 -1
  42. package/dist/schema/parse-utils.d.ts +14 -4
  43. package/dist/schema/parse-utils.d.ts.map +1 -1
  44. package/dist/schema/parse-utils.js +3 -3
  45. package/dist/schema/parse-utils.js.map +1 -1
  46. package/dist/schema/system-tables.d.ts +239 -67
  47. package/dist/schema/system-tables.d.ts.map +1 -1
  48. package/dist/schema/system-tables.js +24 -3
  49. package/dist/schema/system-tables.js.map +1 -1
  50. package/dist/schema/table-def.d.ts +53 -10
  51. package/dist/schema/table-def.d.ts.map +1 -1
  52. package/dist/schema/table-def.js +27 -12
  53. package/dist/schema/table-def.js.map +1 -1
  54. package/dist/schema-management/common.d.ts +13 -0
  55. package/dist/schema-management/common.d.ts.map +1 -0
  56. package/dist/schema-management/common.js +22 -0
  57. package/dist/schema-management/common.js.map +1 -0
  58. package/dist/schema-management/migrations.d.ts +20 -0
  59. package/dist/schema-management/migrations.d.ts.map +1 -0
  60. package/dist/{migrations.js → schema-management/migrations.js} +49 -35
  61. package/dist/schema-management/migrations.js.map +1 -0
  62. package/dist/schema-management/validate-mutation-defs.d.ts +6 -0
  63. package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -0
  64. package/dist/schema-management/validate-mutation-defs.js +37 -0
  65. package/dist/schema-management/validate-mutation-defs.js.map +1 -0
  66. package/dist/sql-queries/sql-queries.d.ts +4 -4
  67. package/dist/sql-queries/sql-queries.d.ts.map +1 -1
  68. package/dist/sql-queries/sql-queries.js +7 -8
  69. package/dist/sql-queries/sql-queries.js.map +1 -1
  70. package/dist/sql-queries/sql-query-builder.d.ts +1 -1
  71. package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
  72. package/dist/sync/index.d.ts +2 -0
  73. package/dist/sync/index.d.ts.map +1 -0
  74. package/dist/sync/index.js +2 -0
  75. package/dist/sync/index.js.map +1 -0
  76. package/dist/sync/sync.d.ts +25 -0
  77. package/dist/sync/sync.d.ts.map +1 -0
  78. package/dist/sync/sync.js +8 -0
  79. package/dist/sync/sync.js.map +1 -0
  80. package/package.json +6 -6
  81. package/src/__tests__/fixture.ts +23 -0
  82. package/src/adapter-types.ts +104 -0
  83. package/src/ambient.d.ts +3 -0
  84. package/src/derived-mutations.test.ts +100 -0
  85. package/src/derived-mutations.ts +127 -0
  86. package/src/index.ts +6 -2
  87. package/src/init-singleton-tables.ts +2 -2
  88. package/src/query-info.ts +104 -0
  89. package/src/rehydrate-from-mutationlog.ts +34 -20
  90. package/src/schema/index.ts +67 -39
  91. package/src/schema/mutations.ts +28 -9
  92. package/src/schema/parse-utils.ts +3 -3
  93. package/src/schema/system-tables.ts +44 -3
  94. package/src/schema/table-def.ts +64 -18
  95. package/src/schema-management/common.ts +40 -0
  96. package/src/{migrations.ts → schema-management/migrations.ts} +81 -56
  97. package/src/schema-management/validate-mutation-defs.ts +60 -0
  98. package/src/sql-queries/sql-queries.ts +8 -9
  99. package/src/sync/index.ts +1 -0
  100. package/src/sync/sync.ts +14 -0
  101. package/dist/database.d.ts +0 -50
  102. package/dist/database.d.ts.map +0 -1
  103. package/dist/database.js +0 -2
  104. package/dist/database.js.map +0 -1
  105. package/dist/migrations.d.ts +0 -16
  106. package/dist/migrations.d.ts.map +0 -1
  107. package/dist/migrations.js.map +0 -1
  108. package/src/database.ts +0 -60
@@ -1,8 +1,9 @@
1
- import type { MainDatabase } from './database.js';
1
+ import type { InMemoryDatabase, MigrationOptionsFromMutationLog } from './adapter-types.js';
2
2
  import type { LiveStoreSchema } from './schema/index.js';
3
- export declare const rehydrateFromMutationLog: ({ logDb, db, schema, }: {
4
- logDb: MainDatabase;
5
- db: MainDatabase;
3
+ export declare const rehydrateFromMutationLog: ({ logDb, db, schema, migrationOptions, }: {
4
+ logDb: InMemoryDatabase;
5
+ db: InMemoryDatabase;
6
6
  schema: LiveStoreSchema;
7
- }) => void;
7
+ migrationOptions: MigrationOptionsFromMutationLog;
8
+ }) => Promise<undefined>;
8
9
  //# sourceMappingURL=rehydrate-from-mutationlog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rehydrate-from-mutationlog.d.ts","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAUxD,eAAO,MAAM,wBAAwB;WAK5B,YAAY;QACf,YAAY;YACR,eAAe;UAsDxB,CAAA"}
1
+ {"version":3,"file":"rehydrate-from-mutationlog.d.ts","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAA;AAE3F,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAA;AAG5E,eAAO,MAAM,wBAAwB,6CAKlC;IACD,KAAK,EAAE,gBAAgB,CAAA;IACvB,EAAE,EAAE,gBAAgB,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;IACvB,gBAAgB,EAAE,+BAA+B,CAAA;CAClD,uBAwEA,CAAA"}
@@ -1,21 +1,33 @@
1
1
  import { shouldNeverHappen } from '@livestore/utils';
2
2
  import { Schema } from '@livestore/utils/effect';
3
3
  import { getExecArgsFromMutation } from './mutation.js';
4
- export const rehydrateFromMutationLog = ({ logDb, db, schema, }) => {
4
+ import { MUTATION_LOG_META_TABLE } from './schema/index.js';
5
+ export const rehydrateFromMutationLog = async ({ logDb, db, schema, migrationOptions, }) => {
5
6
  try {
6
- const stmt = logDb.prepare('SELECT * FROM mutation_log ORDER BY id ASC');
7
+ // TODO possibly implement this in a streaming fashion
8
+ const stmt = logDb.prepare(`SELECT * FROM ${MUTATION_LOG_META_TABLE} ORDER BY id ASC`);
7
9
  const results = stmt.select(undefined);
8
10
  performance.mark('livestore:hydrate-from-mutationlog:start');
9
11
  for (const row of results) {
10
12
  const mutationDef = schema.mutations.get(row.mutation) ?? shouldNeverHappen(`Unknown mutation ${row.mutation}`);
11
- if (Schema.hash(mutationDef.schema) !== row.schema_hash) {
12
- throw new Error(`Schema hash mismatch for mutation ${row.mutation}`);
13
+ if (migrationOptions.excludeMutations?.has(row.mutation) === true)
14
+ continue;
15
+ if (Schema.hash(mutationDef.schema) !== row.schemaHash) {
16
+ console.warn(`Schema hash mismatch for mutation ${row.mutation}. Trying to apply mutation anyway.`);
17
+ }
18
+ const argsDecodedEither = Schema.decodeUnknownEither(Schema.parseJson(mutationDef.schema))(row.argsJson);
19
+ if (argsDecodedEither._tag === 'Left') {
20
+ return shouldNeverHappen(`\
21
+ There was an error decoding the persisted mutation event args for mutation "${row.mutation}".
22
+ This likely means the schema has changed in an incompatible way.
23
+
24
+ Error: ${argsDecodedEither.left}
25
+ `);
13
26
  }
14
- const argsDecoded = Schema.decodeUnknownSync(Schema.parseJson(mutationDef.schema))(row.args_json);
15
27
  const mutationEventDecoded = {
16
28
  id: row.id,
17
29
  mutation: row.mutation,
18
- args: argsDecoded,
30
+ args: argsDecodedEither.right,
19
31
  };
20
32
  // const argsEncoded = JSON.parse(row.args_json)
21
33
  // const mutationSqlRes =
@@ -27,7 +39,12 @@ export const rehydrateFromMutationLog = ({ logDb, db, schema, }) => {
27
39
  const execArgsArr = getExecArgsFromMutation({ mutationDef, mutationEventDecoded });
28
40
  for (const { statementSql, bindValues } of execArgsArr) {
29
41
  try {
30
- db.execute(statementSql, bindValues);
42
+ const getRowsChanged = db.execute(statementSql, bindValues);
43
+ if (import.meta.env.DEV &&
44
+ getRowsChanged() === 0 &&
45
+ migrationOptions.logging?.excludeAffectedRows?.(statementSql) !== true) {
46
+ console.warn(`Mutation "${mutationDef.name}" did not affect any rows:`, statementSql, bindValues);
47
+ }
31
48
  // console.log(`Re-executed mutation ${mutationSql}`, bindValues)
32
49
  }
33
50
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAWvD,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,KAAK,EACL,EAAE,EACF,MAAM,GAKP,EAAE,EAAE;IACH,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAA;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAiB,SAAS,CAAC,CAAA;QAEtD,WAAW,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;QAE5D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,oBAAoB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;YAE/G,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;YACtE,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACjG,MAAM,oBAAoB,GAAG;gBAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,WAAW;aAClB,CAAA;YACD,gDAAgD;YAChD,yBAAyB;YACzB,qCAAqC;YACrC,qBAAqB;YACrB,6EAA6E;YAC7E,+FAA+F;YAC/F,kGAAkG;YAElG,MAAM,WAAW,GAAG,uBAAuB,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAA;YAElF,KAAK,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,WAAW,EAAE,CAAC;gBACvD,IAAI,CAAC;oBACH,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;oBACpC,iEAAiE;gBACnE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,0CAA0C,YAAY,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;oBACtF,QAAQ,CAAA;oBACR,MAAM,CAAC,CAAA;gBACT,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,CAAC,CAAC,CAAA;QACtE,QAAQ,CAAA;QACR,MAAM,CAAC,CAAA;IACT,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;QAC1D,WAAW,CAAC,OAAO,CACjB,oCAAoC,EACpC,0CAA0C,EAC1C,wCAAwC,CACzC,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type SqliteDsl } from 'effect-db-schema';
2
+ import type { MigrationOptions } from '../adapter-types.js';
2
3
  import { type MutationDef, type MutationDefMap, type MutationDefRecord, type RawSqlMutation } from './mutations.js';
3
4
  import type { TableDef } from './table-def.js';
4
5
  export * from './system-tables.js';
@@ -12,32 +13,41 @@ export type LiveStoreSchema<TDbSchema extends SqliteDsl.DbSchema = SqliteDsl.DbS
12
13
  readonly _MutationDefMapType: TMutationsDefRecord;
13
14
  readonly tables: Map<string, TableDef>;
14
15
  readonly mutations: MutationDefMap;
16
+ /** Compound hash of all table defs etc */
17
+ readonly hash: number;
18
+ migrationOptions: MigrationOptions;
15
19
  };
16
20
  export type InputSchema = {
17
21
  readonly tables: Record<string, TableDef> | ReadonlyArray<TableDef>;
18
22
  readonly mutations?: ReadonlyArray<MutationDef.Any> | Record<string, MutationDef.Any>;
19
23
  };
20
- export declare const makeSchema: <TInputSchema extends InputSchema>(schema: TInputSchema) => LiveStoreSchema<DbSchemaFromInputSchemaTables<TInputSchema['tables']>, MutationDefRecordFromInputSchemaMutations<TInputSchema['mutations']>>;
21
- export declare const makeSchemaHash: (schema: LiveStoreSchema) => number;
22
- /**
23
- * In case of ...
24
- * - array: we use the table name of each array item (= table definition) as the object key
25
- * - object: we discard the keys of the input object and use the table name of each object value (= table definition) as the new object key
26
- */
27
- export type DbSchemaFromInputSchemaTables<TTables extends InputSchema['tables']> = TTables extends ReadonlyArray<TableDef> ? {
28
- [K in TTables[number] as K['sqliteDef']['name']]: K['sqliteDef'];
29
- } : TTables extends Record<string, TableDef> ? {
30
- [K in keyof TTables as TTables[K]['sqliteDef']['name']]: TTables[K]['sqliteDef'];
31
- } : never;
32
- export type MutationDefRecordFromInputSchemaMutations<TMutations extends InputSchema['mutations']> = TMutations extends ReadonlyArray<MutationDef.Any> ? {
33
- [K in TMutations[number] as K['name']]: K;
34
- } & {
35
- 'livestore.RawSql': RawSqlMutation;
36
- } : TMutations extends {
37
- [name: string]: MutationDef.Any;
38
- } ? {
39
- [K in keyof TMutations as TMutations[K]['name']]: TMutations[K];
40
- } & {
41
- 'livestore.RawSql': RawSqlMutation;
42
- } : never;
24
+ export declare const makeSchema: <TInputSchema extends InputSchema>(inputSchema: TInputSchema & {
25
+ /** "hard-reset" is currently the default strategy */
26
+ migrations?: MigrationOptions<FromInputSchema.DeriveSchema<TInputSchema>>;
27
+ }) => FromInputSchema.DeriveSchema<TInputSchema>;
28
+ declare namespace FromInputSchema {
29
+ export type DeriveSchema<TInputSchema extends InputSchema> = LiveStoreSchema<DbSchemaFromInputSchemaTables<TInputSchema['tables']>, MutationDefRecordFromInputSchemaMutations<TInputSchema['mutations']>>;
30
+ /**
31
+ * In case of ...
32
+ * - array: we use the table name of each array item (= table definition) as the object key
33
+ * - object: we discard the keys of the input object and use the table name of each object value (= table definition) as the new object key
34
+ */
35
+ type DbSchemaFromInputSchemaTables<TTables extends InputSchema['tables']> = TTables extends ReadonlyArray<TableDef> ? {
36
+ [K in TTables[number] as K['sqliteDef']['name']]: K['sqliteDef'];
37
+ } : TTables extends Record<string, TableDef> ? {
38
+ [K in keyof TTables as TTables[K]['sqliteDef']['name']]: TTables[K]['sqliteDef'];
39
+ } : never;
40
+ type MutationDefRecordFromInputSchemaMutations<TMutations extends InputSchema['mutations']> = TMutations extends ReadonlyArray<MutationDef.Any> ? {
41
+ [K in TMutations[number] as K['name']]: K;
42
+ } & {
43
+ 'livestore.RawSql': RawSqlMutation;
44
+ } : TMutations extends {
45
+ [name: string]: MutationDef.Any;
46
+ } ? {
47
+ [K in keyof TMutations as TMutations[K]['name']]: TMutations[K];
48
+ } & {
49
+ 'livestore.RawSql': RawSqlMutation;
50
+ } : never;
51
+ export {};
52
+ }
43
53
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE9C,cAAc,oBAAoB,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,cAAc,gBAAgB,CAAA;AAE9B,MAAM,MAAM,eAAe,CACzB,SAAS,SAAS,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,EACzD,mBAAmB,SAAS,iBAAiB,GAAG,iBAAiB,IAC/D;IACF,8BAA8B;IAC9B,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAA;IACjC,8BAA8B;IAC9B,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAA;IAEjD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;CACtF,CAAA;AAED,eAAO,MAAM,UAAU,6CAEb,YAAY,KACnB,gBACD,8BAA8B,YAAY,CAAC,QAAQ,CAAC,CAAC,EACrD,0CAA0C,YAAY,CAAC,WAAW,CAAC,CAAC,CAsCrE,CAAA;AAED,eAAO,MAAM,cAAc,WAAY,eAAe,WAIlD,CAAA;AAEJ;;;;GAIG;AACH,MAAM,MAAM,6BAA6B,CAAC,OAAO,SAAS,WAAW,CAAC,QAAQ,CAAC,IAC7E,OAAO,SAAS,aAAa,CAAC,QAAQ,CAAC,GACnC;KAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;CAAE,GACpE,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GACtC;KAAG,CAAC,IAAI,MAAM,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;CAAE,GACpF,KAAK,CAAA;AAEb,MAAM,MAAM,yCAAyC,CAAC,UAAU,SAAS,WAAW,CAAC,WAAW,CAAC,IAC/F,UAAU,SAAS,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,GAC7C;KAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;CAAE,GAAG;IAAE,kBAAkB,EAAE,cAAc,CAAA;CAAE,GACtF,UAAU,SAAS;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,CAAA;CAAE,GACpD;KAAG,CAAC,IAAI,MAAM,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;CAAE,GAAG;IAAE,kBAAkB,EAAE,cAAc,CAAA;CAAE,GAC5G,KAAK,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { isReadonlyArray } from '@livestore/utils';
1
+ import { isReadonlyArray, shouldNeverHappen } from '@livestore/utils';
2
2
  import { SqliteAst } from 'effect-db-schema';
3
+ import { makeDerivedMutationDefsForTable } from '../derived-mutations.js';
3
4
  import { rawSqlMutation, } from './mutations.js';
4
5
  import { systemTables } from './system-tables.js';
5
6
  export * from './system-tables.js';
@@ -8,40 +9,55 @@ export * as ParseUtils from './parse-utils.js';
8
9
  export * from './mutations.js';
9
10
  export const makeSchema = (
10
11
  /** Note when using the object-notation for tables/mutations, the object keys are ignored and not used as table/mutation names */
11
- schema) => {
12
- const inputTables = Array.isArray(schema.tables)
13
- ? schema.tables
14
- : // TODO validate that table names are unique in this case
15
- Object.values(schema.tables);
12
+ inputSchema) => {
13
+ const inputTables = Array.isArray(inputSchema.tables)
14
+ ? inputSchema.tables
15
+ : Object.values(inputSchema.tables);
16
16
  const tables = new Map();
17
17
  for (const tableDef of inputTables) {
18
18
  // TODO validate tables (e.g. index names are unique)
19
+ if (tables.has(tableDef.sqliteDef.ast.name)) {
20
+ shouldNeverHappen(`Duplicate table name: ${tableDef.sqliteDef.ast.name}. Please use unique names for tables.`);
21
+ }
19
22
  tables.set(tableDef.sqliteDef.ast.name, tableDef);
20
23
  }
21
24
  for (const tableDef of systemTables) {
22
25
  tables.set(tableDef.sqliteDef.name, tableDef);
23
26
  }
24
27
  const mutations = new Map();
25
- if (isReadonlyArray(schema.mutations)) {
26
- for (const mutation of schema.mutations) {
28
+ if (isReadonlyArray(inputSchema.mutations)) {
29
+ for (const mutation of inputSchema.mutations) {
27
30
  mutations.set(mutation.name, mutation);
28
31
  }
29
32
  }
30
33
  else {
31
- for (const [name, mutation] of Object.entries(schema.mutations ?? {})) {
32
- mutations.set(name, mutation);
34
+ for (const mutation of Object.values(inputSchema.mutations ?? {})) {
35
+ if (mutations.has(mutation.name)) {
36
+ shouldNeverHappen(`Duplicate mutation name: ${mutation.name}. Please use unique names for mutations.`);
37
+ }
38
+ mutations.set(mutation.name, mutation);
39
+ }
40
+ }
41
+ mutations.set(rawSqlMutation.name, rawSqlMutation);
42
+ for (const tableDef of tables.values()) {
43
+ if (tableDef.options.deriveMutations) {
44
+ const derivedMutationDefs = makeDerivedMutationDefsForTable(tableDef);
45
+ mutations.set(derivedMutationDefs.insert.name, derivedMutationDefs.insert);
46
+ mutations.set(derivedMutationDefs.update.name, derivedMutationDefs.update);
47
+ mutations.set(derivedMutationDefs.delete.name, derivedMutationDefs.delete);
33
48
  }
34
49
  }
35
- mutations.set('livestore.RawSql', rawSqlMutation);
50
+ const hash = SqliteAst.hash({
51
+ _tag: 'dbSchema',
52
+ tables: [...tables.values()].map((_) => _.sqliteDef.ast),
53
+ });
36
54
  return {
37
55
  _DbSchemaType: Symbol('livestore.DbSchemaType'),
38
56
  _MutationDefMapType: Symbol('livestore.MutationDefMapType'),
39
57
  tables,
40
58
  mutations,
59
+ migrationOptions: inputSchema.migrations ?? { strategy: 'hard-reset' },
60
+ hash,
41
61
  };
42
62
  };
43
- export const makeSchemaHash = (schema) => SqliteAst.hash({
44
- _tag: 'dbSchema',
45
- tables: [...schema.tables.values()].map((_) => _.sqliteDef.ast),
46
- });
47
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAA;AAE5D,OAAO,EAKL,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGjD,cAAc,oBAAoB,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,cAAc,gBAAgB,CAAA;AAoB9B,MAAM,CAAC,MAAM,UAAU,GAAG;AACxB,iIAAiI;AACjI,MAAoB,EAIpB,EAAE;IACF,MAAM,WAAW,GAA4B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QACvE,CAAC,CAAC,MAAM,CAAC,MAAM;QACf,CAAC,CAAC,yDAAyD;YACzD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAEhC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAA;IAE1C,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;QACnC,qDAAqD;QACrD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,SAAS,GAAmB,IAAI,GAAG,EAAE,CAAA;IAE3C,IAAI,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;YACtE,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAA;IAEjD,OAAO;QACL,aAAa,EAAE,MAAM,CAAC,wBAAwB,CAAQ;QACtD,mBAAmB,EAAE,MAAM,CAAC,8BAA8B,CAAQ;QAClE,MAAM;QACN,SAAS;KACgB,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAuB,EAAE,EAAE,CACxD,SAAS,CAAC,IAAI,CAAC;IACb,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;CAChE,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
@@ -56,8 +56,14 @@ export type MutationEvent<TMutationsDef extends MutationDef.Any> = {
56
56
  args: Schema.Schema.Type<TMutationsDef['schema']>;
57
57
  id: string;
58
58
  };
59
+ export type MutationEventEncoded<TMutationsDef extends MutationDef.Any> = {
60
+ mutation: TMutationsDef['name'];
61
+ args: Schema.Schema.Encoded<TMutationsDef['schema']>;
62
+ id: string;
63
+ };
59
64
  export declare namespace MutationEvent {
60
65
  type Any = MutationEvent<MutationDef.Any>;
66
+ type AnyEncoded = MutationEventEncoded<MutationDef.Any>;
61
67
  type ForSchema<TSchema extends LiveStoreSchema> = {
62
68
  [K in keyof TSchema['_MutationDefMapType']]: MutationEvent<TSchema['_MutationDefMapType'][K]>;
63
69
  }[keyof TSchema['_MutationDefMapType']];
@@ -76,4 +82,14 @@ export type MutationEventSchema<TMutationsDefRecord extends MutationDefRecord> =
76
82
  };
77
83
  }[keyof TMutationsDefRecord]>;
78
84
  export declare const makeMutationEventSchema: <TMutationsDefRecord extends MutationDefRecord>(mutationDefRecord: TMutationsDefRecord) => MutationEventSchema<TMutationsDefRecord>;
85
+ export declare const mutationEventSchemaDecodedAny: Schema.Struct<{
86
+ mutation: typeof Schema.String;
87
+ args: typeof Schema.Any;
88
+ id: typeof Schema.String;
89
+ }>;
90
+ export declare const mutationEventSchemaEncodedAny: Schema.Struct<{
91
+ mutation: typeof Schema.String;
92
+ args: typeof Schema.Any;
93
+ id: typeof Schema.String;
94
+ }>;
79
95
  //# sourceMappingURL=mutations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
@@ -16,14 +16,24 @@ export const makeMutationDefRecord = (inputRecord) => {
16
16
  result['livestore.RawSql'] = rawSqlMutation;
17
17
  return result;
18
18
  };
19
- export const rawSqlMutation = defineMutation('livestore.RawSql', Schema.struct({
20
- sql: Schema.string,
21
- bindValues: Schema.optional(Schema.record(Schema.string, Schema.any)),
22
- writeTables: Schema.optional(Schema.readonlySet(Schema.string)),
19
+ export const rawSqlMutation = defineMutation('livestore.RawSql', Schema.Struct({
20
+ sql: Schema.String,
21
+ bindValues: Schema.optional(Schema.Record(Schema.String, Schema.Any)),
22
+ writeTables: Schema.optional(Schema.ReadonlySet(Schema.String)),
23
23
  }), ({ sql, bindValues, writeTables }) => ({ sql, bindValues: bindValues ?? {}, writeTables }));
24
- export const makeMutationEventSchema = (mutationDefRecord) => Schema.union(...Object.values(mutationDefRecord).map((def) => Schema.struct({
25
- mutation: Schema.literal(def.name),
24
+ export const makeMutationEventSchema = (mutationDefRecord) => Schema.Union(...Object.values(mutationDefRecord).map((def) => Schema.Struct({
25
+ mutation: Schema.Literal(def.name),
26
26
  args: def.schema,
27
- id: Schema.string,
28
- })));
27
+ id: Schema.String,
28
+ }))).annotations({ title: 'MutationEventSchema' });
29
+ export const mutationEventSchemaDecodedAny = Schema.Struct({
30
+ mutation: Schema.String,
31
+ args: Schema.Any,
32
+ id: Schema.String,
33
+ }).annotations({ title: 'MutationEventSchema.DecodedAny' });
34
+ export const mutationEventSchemaEncodedAny = Schema.Struct({
35
+ mutation: Schema.String,
36
+ args: Schema.Any,
37
+ id: Schema.String,
38
+ }).annotations({ title: 'MutationEventSchema.EncodedAny' });
29
39
  //# sourceMappingURL=mutations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AA6ChD,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,IAAW,EACX,MAAiC,EACjC,GAA8B,EACE,EAAE;IAClC,MAAM,SAAS,GAAG,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IAEvE,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAC7D,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAEvD,OAAO,SAA2C,CAAA;AACpD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,WAAyB,EAGzB,EAAE;IACF,MAAM,MAAM,GAAQ,EAAE,CAAA;IAEtB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IACpB,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAA;IAE3C,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAC1C,kBAAkB,EAClB,MAAM,CAAC,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACrE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAChE,CAAC,EACF,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAC3F,CAAA;AAoCD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,iBAAsC,EACI,EAAE,CAC5C,MAAM,CAAC,KAAK,CACV,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,MAAM,CAAC,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,GAAG,CAAC,MAAM;IAChB,EAAE,EAAE,MAAM,CAAC,MAAM;CAClB,CAAC,CACH,CACK,CAAA"}
1
+ {"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,15 @@
1
- import type { ReadonlyArray } from '@livestore/utils/effect';
2
- import { type FromColumns, type FromTable, type TableDef } from './table-def.js';
3
- export declare const many: <TTableDef extends TableDef>(table: TTableDef) => (rawRows: ReadonlyArray<any>) => ReadonlyArray<FromTable.RowDecoded<TTableDef>>;
4
- export declare const first: <TTableDef extends TableDef>(table: TTableDef, fallback?: FromColumns.InsertRowDecoded<TTableDef['sqliteDef']['columns']>) => (rawRows: ReadonlyArray<any>) => any;
1
+ import { Schema } from '@livestore/utils/effect';
2
+ import { type FromColumns, type FromTable } from './table-def.js';
3
+ export declare const many: <TTableDef extends {
4
+ sqliteDef: import("./table-def.js").DefaultSqliteTableDefConstrained;
5
+ isSingleColumn: boolean;
6
+ options: import("./table-def.js").TableOptions;
7
+ schema: Schema.Schema<any, any, never>;
8
+ }>(table: TTableDef) => ((rawRows: ReadonlyArray<any>) => ReadonlyArray<FromTable.RowDecoded<TTableDef>>);
9
+ export declare const first: <TTableDef extends {
10
+ sqliteDef: import("./table-def.js").DefaultSqliteTableDefConstrained;
11
+ isSingleColumn: boolean;
12
+ options: import("./table-def.js").TableOptions;
13
+ schema: Schema.Schema<any, any, never>;
14
+ }>(table: TTableDef, fallback?: FromColumns.InsertRowDecoded<TTableDef['sqliteDef']['columns']>) => (rawRows: ReadonlyArray<any>) => any;
5
15
  //# sourceMappingURL=parse-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAI5D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAA2B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzG,eAAO,MAAM,IAAI,sCACR,SAAS,eACJ,cAAc,GAAG,CAAC,KAAK,cAAc,UAAU,UAAU,CAAC,SAAS,CAAC,CAEjF,CAAA;AAED,eAAO,MAAM,KAAK,sCAEP,SAAS,aACL,YAAY,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,eAElE,cAAc,GAAG,CAAC,QAuB3B,CAAA"}
1
+ {"version":3,"file":"parse-utils.d.ts","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,MAAM,EAAiB,MAAM,yBAAyB,CAAA;AAGrF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAA0C,MAAM,gBAAgB,CAAA;AAEzG,eAAO,MAAM,IAAI;;;;;UACR,SAAS,KACf,CAAC,CAAC,OAAO,EAAE,cAAc,GAAG,CAAC,KAAK,cAAc,UAAU,UAAU,CAAC,SAAS,CAAC,CAAC,CAElF,CAAA;AAED,eAAO,MAAM,KAAK;;;;;UAEP,SAAS,aACL,YAAY,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,eAElE,cAAc,GAAG,CAAC,QAuB3B,CAAA"}
@@ -2,10 +2,10 @@ import { shouldNeverHappen } from '@livestore/utils';
2
2
  import { pipe, ReadonlyRecord, Schema, TreeFormatter } from '@livestore/utils/effect';
3
3
  import { getDefaultValuesDecoded } from './table-def.js';
4
4
  export const many = (table) => {
5
- return Schema.decodeSync(Schema.array(table.schema));
5
+ return Schema.decodeSync(Schema.Array(table.schema));
6
6
  };
7
7
  export const first = (table, fallback) => (rawRows) => {
8
- const rows = Schema.decodeSync(Schema.array(table.schema))(rawRows);
8
+ const rows = Schema.decodeSync(Schema.Array(table.schema))(rawRows);
9
9
  if (rows.length === 0) {
10
10
  const schemaDefaultValues = getDefaultValuesDecoded(table);
11
11
  const defaultValuesResult = pipe(table.sqliteDef.columns, ReadonlyRecord.map((_column, columnName) => fallback?.[columnName] ?? schemaDefaultValues[columnName]), Schema.validateEither(table.schema));
@@ -13,7 +13,7 @@ export const first = (table, fallback) => (rawRows) => {
13
13
  return defaultValuesResult.right;
14
14
  }
15
15
  else {
16
- console.error('decode error', TreeFormatter.formatError(defaultValuesResult.left));
16
+ console.error('decode error', TreeFormatter.formatErrorSync(defaultValuesResult.left));
17
17
  return shouldNeverHappen(`Expected query (for table ${table.sqliteDef.name}) to return at least one result but found none. Also can't fallback to default values as some were not provided.`);
18
18
  }
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-utils.js","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAGrF,OAAO,EAAoC,uBAAuB,EAAiB,MAAM,gBAAgB,CAAA;AAEzG,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,KAAgB,EACmE,EAAE;IACrF,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAS,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAChB,CACE,KAAgB,EAChB,QAA0E,EAC1E,EAAE,CACJ,CAAC,OAA2B,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAEnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAE1D,MAAM,mBAAmB,GAAG,IAAI,CAC9B,KAAK,CAAC,SAAS,CAAC,OAAO,EACvB,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAE,QAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAC/G,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CACpC,CAAA;QAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzC,OAAO,mBAAmB,CAAC,KAAK,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;YAClF,OAAO,iBAAiB,CACtB,6BAA6B,KAAK,CAAC,SAAS,CAAC,IAAI,kHAAkH,CACpK,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,CAAE,CAAA;AACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"parse-utils.js","sourceRoot":"","sources":["../../src/schema/parse-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAGrF,OAAO,EAAoC,uBAAuB,EAAiB,MAAM,gBAAgB,CAAA;AAEzG,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,KAAgB,EACmE,EAAE;IACrF,OAAO,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAS,CAAA;AAC9D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAChB,CACE,KAAgB,EAChB,QAA0E,EAC1E,EAAE,CACJ,CAAC,OAA2B,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAEnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;QAE1D,MAAM,mBAAmB,GAAG,IAAI,CAC9B,KAAK,CAAC,SAAS,CAAC,OAAO,EACvB,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAE,QAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAC/G,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CACpC,CAAA;QAED,IAAI,mBAAmB,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzC,OAAO,mBAAmB,CAAC,KAAK,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;YACtF,OAAO,iBAAiB,CACtB,6BAA6B,KAAK,CAAC,SAAS,CAAC,IAAI,kHAAkH,CACpK,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,CAAC,CAAE,CAAA;AACjB,CAAC,CAAA"}