jazz-tools 2.0.0-alpha.21 → 2.0.0-alpha.22
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/bin/docs-index.db +0 -0
- package/bin/docs-index.txt +1624 -542
- package/bin/jazz-tools.js +19 -40
- package/bin/native/jazz-tools-darwin-arm64 +0 -0
- package/bin/native/jazz-tools-darwin-x64 +0 -0
- package/bin/native/jazz-tools-linux-arm64 +0 -0
- package/bin/native/jazz-tools-linux-x64 +0 -0
- package/bin/native/jazz-tools-windows-x64.exe +0 -0
- package/dist/backend/create-jazz-context.d.ts +31 -6
- package/dist/backend/create-jazz-context.d.ts.map +1 -1
- package/dist/backend/create-jazz-context.js +35 -5
- package/dist/backend/create-jazz-context.js.map +1 -1
- package/dist/backend/create-jazz-context.test.js +61 -6
- package/dist/backend/create-jazz-context.test.js.map +1 -1
- package/dist/cli.d.ts +29 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +648 -246
- package/dist/cli.js.map +1 -1
- package/dist/cli.test.js +512 -297
- package/dist/cli.test.js.map +1 -1
- package/dist/codegen/schema-reader.d.ts.map +1 -1
- package/dist/codegen/schema-reader.js +6 -1
- package/dist/codegen/schema-reader.js.map +1 -1
- package/dist/dev-tools/dev-tools.d.ts.map +1 -1
- package/dist/dev-tools/dev-tools.js +61 -13
- package/dist/dev-tools/dev-tools.js.map +1 -1
- package/dist/dev-tools/dev-tools.test.js +166 -0
- package/dist/dev-tools/dev-tools.test.js.map +1 -1
- package/dist/dev-tools/extension-panel.d.ts.map +1 -1
- package/dist/dev-tools/extension-panel.js +30 -7
- package/dist/dev-tools/extension-panel.js.map +1 -1
- package/dist/dev-tools/protocol.d.ts +49 -1
- package/dist/dev-tools/protocol.d.ts.map +1 -1
- package/dist/dev-tools/protocol.js +3 -0
- package/dist/dev-tools/protocol.js.map +1 -1
- package/dist/drivers/index.d.ts +1 -1
- package/dist/drivers/index.d.ts.map +1 -1
- package/dist/drivers/schema-wire.d.ts.map +1 -1
- package/dist/drivers/schema-wire.js +12 -1
- package/dist/drivers/schema-wire.js.map +1 -1
- package/dist/drivers/schema-wire.test.d.ts +2 -0
- package/dist/drivers/schema-wire.test.d.ts.map +1 -0
- package/dist/drivers/schema-wire.test.js +31 -0
- package/dist/drivers/schema-wire.test.js.map +1 -0
- package/dist/drivers/types.d.ts +2 -0
- package/dist/drivers/types.d.ts.map +1 -1
- package/dist/dsl.d.ts +139 -95
- package/dist/dsl.d.ts.map +1 -1
- package/dist/dsl.js +64 -8
- package/dist/dsl.js.map +1 -1
- package/dist/dsl.test.js +78 -8
- package/dist/dsl.test.js.map +1 -1
- package/dist/index.d.ts +32 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/magic-columns.d.ts +3 -1
- package/dist/magic-columns.d.ts.map +1 -1
- package/dist/magic-columns.js +20 -4
- package/dist/magic-columns.js.map +1 -1
- package/dist/mcp/build-index.test.js +1 -1
- package/dist/migrations.d.ts +126 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +112 -0
- package/dist/migrations.js.map +1 -0
- package/dist/permissions/index.test.js +35 -0
- package/dist/permissions/index.test.js.map +1 -1
- package/dist/react-native/create-jazz-client.test.js +62 -42
- package/dist/react-native/create-jazz-client.test.js.map +1 -1
- package/dist/react-native/jazz-rn-runtime-adapter.d.ts +18 -3
- package/dist/react-native/jazz-rn-runtime-adapter.d.ts.map +1 -1
- package/dist/react-native/jazz-rn-runtime-adapter.js +110 -6
- package/dist/react-native/jazz-rn-runtime-adapter.js.map +1 -1
- package/dist/react-native/jazz-rn-runtime-adapter.test.js +149 -4
- package/dist/react-native/jazz-rn-runtime-adapter.test.js.map +1 -1
- package/dist/reconcile-array.d.ts +29 -0
- package/dist/reconcile-array.d.ts.map +1 -0
- package/dist/reconcile-array.js +110 -0
- package/dist/reconcile-array.js.map +1 -0
- package/dist/reconcile-array.test.d.ts +2 -0
- package/dist/reconcile-array.test.d.ts.map +1 -0
- package/dist/reconcile-array.test.js +118 -0
- package/dist/reconcile-array.test.js.map +1 -0
- package/dist/runtime/client.d.ts +24 -20
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.for-request.test.js +8 -8
- package/dist/runtime/client.for-request.test.js.map +1 -1
- package/dist/runtime/client.js +58 -25
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/client.mutations.test.js +72 -1
- package/dist/runtime/client.mutations.test.js.map +1 -1
- package/dist/runtime/cloud-server.integration.test.js +145 -88
- package/dist/runtime/cloud-server.integration.test.js.map +1 -1
- package/dist/runtime/db.d.ts +3 -7
- package/dist/runtime/db.d.ts.map +1 -1
- package/dist/runtime/db.js +16 -14
- package/dist/runtime/db.js.map +1 -1
- package/dist/runtime/db.schema-order.test.js +8 -8
- package/dist/runtime/db.schema-order.test.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/napi.integration.test.js +113 -136
- package/dist/runtime/napi.integration.test.js.map +1 -1
- package/dist/runtime/query-adapter.d.ts.map +1 -1
- package/dist/runtime/query-adapter.js +22 -2
- package/dist/runtime/query-adapter.js.map +1 -1
- package/dist/runtime/query-adapter.test.js +81 -5
- package/dist/runtime/query-adapter.test.js.map +1 -1
- package/dist/runtime/row-transformer.js +2 -2
- package/dist/runtime/row-transformer.js.map +1 -1
- package/dist/runtime/row-transformer.test.js +9 -9
- package/dist/runtime/row-transformer.test.js.map +1 -1
- package/dist/runtime/schema-fetch.d.ts +103 -1
- package/dist/runtime/schema-fetch.d.ts.map +1 -1
- package/dist/runtime/schema-fetch.js +106 -0
- package/dist/runtime/schema-fetch.js.map +1 -1
- package/dist/runtime/sync-transport.d.ts.map +1 -1
- package/dist/runtime/sync-transport.js +15 -0
- package/dist/runtime/sync-transport.js.map +1 -1
- package/dist/runtime/sync-transport.test.js +33 -0
- package/dist/runtime/sync-transport.test.js.map +1 -1
- package/dist/runtime/value-converter.d.ts +9 -6
- package/dist/runtime/value-converter.d.ts.map +1 -1
- package/dist/runtime/value-converter.js +22 -9
- package/dist/runtime/value-converter.js.map +1 -1
- package/dist/runtime/value-converter.test.js +32 -26
- package/dist/runtime/value-converter.test.js.map +1 -1
- package/dist/schema-loader.d.ts +14 -0
- package/dist/schema-loader.d.ts.map +1 -0
- package/dist/schema-loader.js +217 -0
- package/dist/schema-loader.js.map +1 -0
- package/dist/schema-permissions.d.ts +8 -0
- package/dist/schema-permissions.d.ts.map +1 -0
- package/dist/schema-permissions.js +266 -0
- package/dist/schema-permissions.js.map +1 -0
- package/dist/schema-permissions.test.d.ts +2 -0
- package/dist/schema-permissions.test.d.ts.map +1 -0
- package/dist/schema-permissions.test.js +43 -0
- package/dist/schema-permissions.test.js.map +1 -0
- package/dist/schema.d.ts +11 -9
- package/dist/schema.d.ts.map +1 -1
- package/dist/svelte/context.svelte.test.js +50 -0
- package/dist/svelte/rune-patterns.svelte.test.js +301 -0
- package/dist/svelte/test-helpers.svelte.js +14 -0
- package/dist/svelte/use-all.svelte.d.ts.map +1 -1
- package/dist/svelte/use-all.svelte.js +7 -1
- package/dist/testing/fixtures/basic/schema.d.ts +11 -0
- package/dist/testing/fixtures/basic/schema.d.ts.map +1 -0
- package/dist/testing/fixtures/basic/schema.js +10 -0
- package/dist/testing/fixtures/basic/schema.js.map +1 -0
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +2 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/index.test.js +109 -9
- package/dist/testing/index.test.js.map +1 -1
- package/dist/testing/local-jazz-server.d.ts +2 -0
- package/dist/testing/local-jazz-server.d.ts.map +1 -1
- package/dist/testing/local-jazz-server.js +21 -51
- package/dist/testing/local-jazz-server.js.map +1 -1
- package/dist/testing/policy-test-app.d.ts.map +1 -1
- package/dist/testing/policy-test-app.js +71 -3
- package/dist/testing/policy-test-app.js.map +1 -1
- package/dist/typed-app.d.ts +364 -0
- package/dist/typed-app.d.ts.map +1 -0
- package/dist/{testing/fixtures/basic/app.js → typed-app.js} +118 -30
- package/dist/typed-app.js.map +1 -0
- package/dist/vue/use-all.d.ts +2 -2
- package/dist/vue/use-all.d.ts.map +1 -1
- package/dist/vue/use-all.js +9 -3
- package/dist/vue/use-all.js.map +1 -1
- package/dist/vue/use-all.test.js +137 -0
- package/dist/vue/use-all.test.js.map +1 -1
- package/package.json +15 -13
- package/dist/codegen/codegen.test.d.ts +0 -2
- package/dist/codegen/codegen.test.d.ts.map +0 -1
- package/dist/codegen/codegen.test.js +0 -1134
- package/dist/codegen/codegen.test.js.map +0 -1
- package/dist/codegen/index.d.ts +0 -18
- package/dist/codegen/index.d.ts.map +0 -1
- package/dist/codegen/index.js +0 -22
- package/dist/codegen/index.js.map +0 -1
- package/dist/codegen/query-builder-generator.d.ts +0 -26
- package/dist/codegen/query-builder-generator.d.ts.map +0 -1
- package/dist/codegen/query-builder-generator.js +0 -377
- package/dist/codegen/query-builder-generator.js.map +0 -1
- package/dist/codegen/type-generator.d.ts +0 -30
- package/dist/codegen/type-generator.d.ts.map +0 -1
- package/dist/codegen/type-generator.js +0 -368
- package/dist/codegen/type-generator.js.map +0 -1
- package/dist/runtime/napi.fjall.db.all.integration.test.d.ts +0 -2
- package/dist/runtime/napi.fjall.db.all.integration.test.d.ts.map +0 -1
- package/dist/runtime/napi.fjall.db.all.integration.test.js +0 -76
- package/dist/runtime/napi.fjall.db.all.integration.test.js.map +0 -1
- package/dist/runtime/napi.fjall.db.subscribeAll.integration.test.d.ts +0 -2
- package/dist/runtime/napi.fjall.db.subscribeAll.integration.test.d.ts.map +0 -1
- package/dist/runtime/napi.fjall.db.subscribeAll.integration.test.js +0 -47
- package/dist/runtime/napi.fjall.db.subscribeAll.integration.test.js.map +0 -1
- package/dist/runtime/napi.fjall.test-helpers.d.ts +0 -34
- package/dist/runtime/napi.fjall.test-helpers.d.ts.map +0 -1
- package/dist/runtime/napi.fjall.test-helpers.js +0 -172
- package/dist/runtime/napi.fjall.test-helpers.js.map +0 -1
- package/dist/sql-gen.d.ts +0 -5
- package/dist/sql-gen.d.ts.map +0 -1
- package/dist/sql-gen.js +0 -234
- package/dist/sql-gen.js.map +0 -1
- package/dist/sql-gen.test.d.ts +0 -2
- package/dist/sql-gen.test.d.ts.map +0 -1
- package/dist/sql-gen.test.js +0 -481
- package/dist/sql-gen.test.js.map +0 -1
- package/dist/svelte/context.test.d.ts +0 -2
- package/dist/svelte/context.test.d.ts.map +0 -1
- package/dist/svelte/context.test.js +0 -55
- package/dist/svelte/use-all.test.d.ts +0 -2
- package/dist/svelte/use-all.test.d.ts.map +0 -1
- package/dist/svelte/use-all.test.js +0 -147
- package/dist/testing/fixtures/basic/app.d.ts +0 -59
- package/dist/testing/fixtures/basic/app.d.ts.map +0 -1
- package/dist/testing/fixtures/basic/app.js.map +0 -1
- package/dist/testing/fixtures/basic/current.d.ts +0 -2
- package/dist/testing/fixtures/basic/current.d.ts.map +0 -1
- package/dist/testing/fixtures/basic/current.js +0 -6
- package/dist/testing/fixtures/basic/current.js.map +0 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { AnyTypedColumnBuilder, ColumnBuilderOptional, ColumnBuilderReferences, ColumnBuilderSqlType } from "./dsl.js";
|
|
2
|
+
import type { AddOp, DropOp, Lens, RenameOp, Schema as SchemaAst, TSTypeFromSqlType } from "./schema.js";
|
|
3
|
+
import type { CompactSchema, Schema as AppSchema, SchemaDefinition, Simplify } from "./typed-app.js";
|
|
4
|
+
type SchemaLike = SchemaDefinition | AppSchema<any>;
|
|
5
|
+
type NormalizedSchema<TSchema extends SchemaLike> = TSchema extends AppSchema<infer TDefinition> ? CompactSchema<TDefinition> : TSchema extends SchemaDefinition ? CompactSchema<TSchema> : never;
|
|
6
|
+
type TableName<TSchema extends SchemaLike> = Extract<keyof NormalizedSchema<TSchema>, string>;
|
|
7
|
+
type SharedTableName<TFrom extends SchemaLike, TTo extends SchemaLike> = Extract<TableName<TFrom>, TableName<TTo>>;
|
|
8
|
+
type ColumnName<TSchema extends SchemaLike, TTable extends TableName<TSchema>> = Extract<keyof NormalizedSchema<TSchema>[TTable], string>;
|
|
9
|
+
type CommonColumnName<TFrom extends SchemaLike, TTo extends SchemaLike, TTable extends SharedTableName<TFrom, TTo>> = Extract<ColumnName<TFrom, TTable>, ColumnName<TTo, TTable>>;
|
|
10
|
+
type BuilderForColumn<TSchema extends SchemaLike, TTable extends TableName<TSchema>, TColumn extends ColumnName<TSchema, TTable>> = NormalizedSchema<TSchema>[TTable][TColumn];
|
|
11
|
+
type ColumnValue<TBuilder extends AnyTypedColumnBuilder> = TSTypeFromSqlType<ColumnBuilderSqlType<TBuilder>>;
|
|
12
|
+
type DefaultValueForBuilder<TBuilder extends AnyTypedColumnBuilder> = ColumnBuilderOptional<TBuilder> extends true ? ColumnValue<TBuilder> | null : ColumnValue<TBuilder>;
|
|
13
|
+
type AddedColumnName<TFrom extends SchemaLike, TTo extends SchemaLike, TTable extends SharedTableName<TFrom, TTo>> = Exclude<ColumnName<TTo, TTable>, ColumnName<TFrom, TTable>>;
|
|
14
|
+
type RemovedColumnName<TFrom extends SchemaLike, TTo extends SchemaLike, TTable extends SharedTableName<TFrom, TTo>> = Exclude<ColumnName<TFrom, TTable>, ColumnName<TTo, TTable>>;
|
|
15
|
+
type BuilderIdentity<TBuilder extends AnyTypedColumnBuilder> = readonly [
|
|
16
|
+
ColumnBuilderSqlType<TBuilder>,
|
|
17
|
+
ColumnBuilderOptional<TBuilder>,
|
|
18
|
+
ColumnBuilderReferences<TBuilder>
|
|
19
|
+
];
|
|
20
|
+
type BuildersEqual<TLeft extends AnyTypedColumnBuilder, TRight extends AnyTypedColumnBuilder> = [
|
|
21
|
+
BuilderIdentity<TLeft>
|
|
22
|
+
] extends [BuilderIdentity<TRight>] ? [BuilderIdentity<TRight>] extends [BuilderIdentity<TLeft>] ? true : false : false;
|
|
23
|
+
type AddOperationForBuilder<TBuilder extends AnyTypedColumnBuilder> = AddOp<ColumnBuilderSqlType<TBuilder>, DefaultValueForBuilder<TBuilder>>;
|
|
24
|
+
type DropOperationForBuilder<TBuilder extends AnyTypedColumnBuilder> = DropOp<ColumnBuilderSqlType<TBuilder>, DefaultValueForBuilder<TBuilder>>;
|
|
25
|
+
export type MigrationTableShape<TFrom extends SchemaLike, TTo extends SchemaLike, TTable extends SharedTableName<TFrom, TTo>> = Simplify<{
|
|
26
|
+
[TColumn in AddedColumnName<TFrom, TTo, TTable>]?: AddOperationForBuilder<BuilderForColumn<TTo, TTable, TColumn>> | RenameOp<RemovedColumnName<TFrom, TTo, TTable>>;
|
|
27
|
+
} & {
|
|
28
|
+
[TColumn in RemovedColumnName<TFrom, TTo, TTable>]?: DropOperationForBuilder<BuilderForColumn<TFrom, TTable, TColumn>>;
|
|
29
|
+
}>;
|
|
30
|
+
export type MigrationShape<TFrom extends SchemaLike, TTo extends SchemaLike> = Simplify<{
|
|
31
|
+
[TTable in SharedTableName<TFrom, TTo>]?: MigrationTableShape<TFrom, TTo, TTable>;
|
|
32
|
+
}>;
|
|
33
|
+
type MigrationTables<TMigrate> = NonNullable<TMigrate> extends Record<string, unknown> ? NonNullable<TMigrate> : {};
|
|
34
|
+
type TableOpsFor<TMigrate, TTable extends string> = TTable extends keyof MigrationTables<TMigrate> ? MigrationTables<TMigrate>[TTable] extends Record<string, unknown> ? MigrationTables<TMigrate>[TTable] : {} : {};
|
|
35
|
+
type TableOpFor<TMigrate, TTable extends string, TColumn extends string> = TColumn extends keyof TableOpsFor<TMigrate, TTable> ? TableOpsFor<TMigrate, TTable>[TColumn] : never;
|
|
36
|
+
type RenameSourcesForTable<TTableOps> = TTableOps extends Record<string, unknown> ? {
|
|
37
|
+
[TColumn in Extract<keyof TTableOps, string>]: TTableOps[TColumn] extends RenameOp<infer TOldName extends string> ? TOldName : never;
|
|
38
|
+
}[Extract<keyof TTableOps, string>] : never;
|
|
39
|
+
type UnknownMigrationTables<TFrom extends SchemaLike, TTo extends SchemaLike, TMigrate> = Exclude<Extract<keyof MigrationTables<TMigrate>, string>, SharedTableName<TFrom, TTo>>;
|
|
40
|
+
type UnknownMigrationColumns<TFrom extends SchemaLike, TTo extends SchemaLike, TMigrate> = {
|
|
41
|
+
[TTable in SharedTableName<TFrom, TTo>]: Exclude<Extract<keyof TableOpsFor<TMigrate, TTable>, string>, AddedColumnName<TFrom, TTo, TTable> | RemovedColumnName<TFrom, TTo, TTable>> extends infer TUnknownColumn ? [TUnknownColumn] extends [never] ? never : {
|
|
42
|
+
readonly table: TTable;
|
|
43
|
+
readonly column: Extract<TUnknownColumn, string>;
|
|
44
|
+
readonly problem: "Migration tables may only mention added or removed columns";
|
|
45
|
+
} : never;
|
|
46
|
+
}[SharedTableName<TFrom, TTo>];
|
|
47
|
+
type ValidateAddedColumnOperation<TFrom extends SchemaLike, TTo extends SchemaLike, TTable extends SharedTableName<TFrom, TTo>, TColumn extends AddedColumnName<TFrom, TTo, TTable>, TMigrate> = TableOpFor<TMigrate, TTable, TColumn> extends infer TOperation ? [TOperation] extends [never] ? {
|
|
48
|
+
readonly table: TTable;
|
|
49
|
+
readonly column: TColumn;
|
|
50
|
+
readonly problem: "Added columns must use col.add.*(...) or col.renameFrom(...)";
|
|
51
|
+
} : TOperation extends AddOperationForBuilder<BuilderForColumn<TTo, TTable, TColumn>> ? never : TOperation extends RenameOp<infer TOldName extends string> ? TOldName extends RemovedColumnName<TFrom, TTo, TTable> ? BuildersEqual<BuilderForColumn<TFrom, TTable, TOldName>, BuilderForColumn<TTo, TTable, TColumn>> extends true ? never : {
|
|
52
|
+
readonly table: TTable;
|
|
53
|
+
readonly column: TColumn;
|
|
54
|
+
readonly renameFrom: TOldName;
|
|
55
|
+
readonly problem: "col.renameFrom(...) must point at a removed column with the same type";
|
|
56
|
+
} : {
|
|
57
|
+
readonly table: TTable;
|
|
58
|
+
readonly column: TColumn;
|
|
59
|
+
readonly renameFrom: TOldName;
|
|
60
|
+
readonly problem: "col.renameFrom(...) must point at a removed column in the same table";
|
|
61
|
+
} : {
|
|
62
|
+
readonly table: TTable;
|
|
63
|
+
readonly column: TColumn;
|
|
64
|
+
readonly problem: "Added columns must use col.add.*(...) or col.renameFrom(...)";
|
|
65
|
+
} : never;
|
|
66
|
+
type AddedColumnOperationErrors<TFrom extends SchemaLike, TTo extends SchemaLike, TMigrate> = {
|
|
67
|
+
[TTable in SharedTableName<TFrom, TTo>]: {
|
|
68
|
+
[TColumn in AddedColumnName<TFrom, TTo, TTable>]: ValidateAddedColumnOperation<TFrom, TTo, TTable, TColumn, TMigrate>;
|
|
69
|
+
}[AddedColumnName<TFrom, TTo, TTable>];
|
|
70
|
+
}[SharedTableName<TFrom, TTo>];
|
|
71
|
+
type ValidateRemovedColumnOperation<TFrom extends SchemaLike, TTo extends SchemaLike, TTable extends SharedTableName<TFrom, TTo>, TColumn extends RemovedColumnName<TFrom, TTo, TTable>, TMigrate> = TColumn extends RenameSourcesForTable<TableOpsFor<TMigrate, TTable>> ? TableOpFor<TMigrate, TTable, TColumn> extends never ? never : {
|
|
72
|
+
readonly table: TTable;
|
|
73
|
+
readonly column: TColumn;
|
|
74
|
+
readonly problem: "Removed columns cannot be both dropped and renamed from";
|
|
75
|
+
} : [TableOpFor<TMigrate, TTable, TColumn>] extends [never] ? {
|
|
76
|
+
readonly table: TTable;
|
|
77
|
+
readonly column: TColumn;
|
|
78
|
+
readonly problem: "Removed columns must use col.drop.*(...) or be referenced by col.renameFrom(...)";
|
|
79
|
+
} : [TableOpFor<TMigrate, TTable, TColumn>] extends [
|
|
80
|
+
DropOperationForBuilder<BuilderForColumn<TFrom, TTable, TColumn>>
|
|
81
|
+
] ? never : {
|
|
82
|
+
readonly table: TTable;
|
|
83
|
+
readonly column: TColumn;
|
|
84
|
+
readonly problem: "Removed columns must use col.drop.*(...) or be referenced by col.renameFrom(...)";
|
|
85
|
+
};
|
|
86
|
+
type RemovedColumnOperationErrors<TFrom extends SchemaLike, TTo extends SchemaLike, TMigrate> = {
|
|
87
|
+
[TTable in SharedTableName<TFrom, TTo>]: {
|
|
88
|
+
[TColumn in RemovedColumnName<TFrom, TTo, TTable>]: ValidateRemovedColumnOperation<TFrom, TTo, TTable, TColumn, TMigrate>;
|
|
89
|
+
}[RemovedColumnName<TFrom, TTo, TTable>];
|
|
90
|
+
}[SharedTableName<TFrom, TTo>];
|
|
91
|
+
type UnsupportedSharedColumnChanges<TFrom extends SchemaLike, TTo extends SchemaLike> = {
|
|
92
|
+
[TTable in SharedTableName<TFrom, TTo>]: {
|
|
93
|
+
[TColumn in CommonColumnName<TFrom, TTo, TTable>]: BuildersEqual<BuilderForColumn<TFrom, TTable, TColumn>, BuilderForColumn<TTo, TTable, TColumn>> extends true ? never : {
|
|
94
|
+
readonly table: TTable;
|
|
95
|
+
readonly column: TColumn;
|
|
96
|
+
readonly problem: "Columns with the same name must keep the same type, optionality, and ref target";
|
|
97
|
+
};
|
|
98
|
+
}[CommonColumnName<TFrom, TTo, TTable>];
|
|
99
|
+
}[SharedTableName<TFrom, TTo>];
|
|
100
|
+
type MigrationValidationErrors<TFrom extends SchemaLike, TTo extends SchemaLike, TMigrate> = (UnknownMigrationTables<TFrom, TTo, TMigrate> extends infer TUnknownTable ? [TUnknownTable] extends [never] ? never : {
|
|
101
|
+
readonly table: Extract<TUnknownTable, string>;
|
|
102
|
+
readonly problem: "Migration only supports tables present in both from and to";
|
|
103
|
+
} : never) | UnknownMigrationColumns<TFrom, TTo, TMigrate> | AddedColumnOperationErrors<TFrom, TTo, TMigrate> | RemovedColumnOperationErrors<TFrom, TTo, TMigrate> | UnsupportedSharedColumnChanges<TFrom, TTo>;
|
|
104
|
+
type ValidateMigrationConfig<TFrom extends SchemaLike, TTo extends SchemaLike, TMigrate> = [
|
|
105
|
+
MigrationValidationErrors<TFrom, TTo, TMigrate>
|
|
106
|
+
] extends [never] ? unknown : {
|
|
107
|
+
readonly __migrationValidationError__: "Migration definitions must cover every added or removed column";
|
|
108
|
+
readonly __migrationErrors__: MigrationValidationErrors<TFrom, TTo, TMigrate>;
|
|
109
|
+
};
|
|
110
|
+
export interface DefinedMigration<TFrom extends SchemaLike = SchemaLike, TTo extends SchemaLike = SchemaLike> {
|
|
111
|
+
readonly fromHash: string;
|
|
112
|
+
readonly toHash: string;
|
|
113
|
+
readonly from: TFrom;
|
|
114
|
+
readonly to: TTo;
|
|
115
|
+
readonly forward: Lens[];
|
|
116
|
+
}
|
|
117
|
+
export declare function schemaDefinitionToAst(definition: SchemaDefinition | AppSchema<any>): SchemaAst;
|
|
118
|
+
export declare function defineMigration<const TFrom extends SchemaLike, const TTo extends SchemaLike, const TMigrate extends MigrationShape<TFrom, TTo> | undefined = undefined>(config: {
|
|
119
|
+
fromHash: string;
|
|
120
|
+
toHash: string;
|
|
121
|
+
from: TFrom;
|
|
122
|
+
to: TTo;
|
|
123
|
+
migrate?: TMigrate;
|
|
124
|
+
} & ValidateMigrationConfig<TFrom, TTo, TMigrate>): DefinedMigration<TFrom, TTo>;
|
|
125
|
+
export {};
|
|
126
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { assertUserColumnNameAllowed } from "./magic-columns.js";
|
|
2
|
+
import { unwrapTableDefinition } from "./typed-app.js";
|
|
3
|
+
function tableDefinitionToAst(tableName, definition) {
|
|
4
|
+
const columnsDefinition = unwrapTableDefinition(definition);
|
|
5
|
+
return {
|
|
6
|
+
name: tableName,
|
|
7
|
+
columns: Object.entries(columnsDefinition).map(([columnName, builder]) => {
|
|
8
|
+
assertUserColumnNameAllowed(columnName);
|
|
9
|
+
return builder._build(columnName);
|
|
10
|
+
}),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function normalizeSchemaDefinition(definition) {
|
|
14
|
+
return Object.fromEntries(Object.entries(definition).map(([tableName, tableDefinition]) => [
|
|
15
|
+
tableName,
|
|
16
|
+
unwrapTableDefinition(tableDefinition),
|
|
17
|
+
]));
|
|
18
|
+
}
|
|
19
|
+
function definitionToSchema(definition) {
|
|
20
|
+
const normalizedDefinition = normalizeSchemaDefinition(definition);
|
|
21
|
+
return {
|
|
22
|
+
tables: Object.entries(normalizedDefinition).map(([tableName, tableDefinition]) => tableDefinitionToAst(tableName, tableDefinition)),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function buildForwardLenses(migrate, fromDefinition, toDefinition) {
|
|
26
|
+
if (!migrate) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
const forward = [];
|
|
30
|
+
for (const [tableName, rawTableOps] of Object.entries(migrate)) {
|
|
31
|
+
if (!rawTableOps || typeof rawTableOps !== "object") {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const tableOps = rawTableOps;
|
|
35
|
+
const operations = [];
|
|
36
|
+
const renamedSources = new Set();
|
|
37
|
+
const droppedColumns = new Set();
|
|
38
|
+
for (const [columnName, operation] of Object.entries(tableOps)) {
|
|
39
|
+
switch (operation._type) {
|
|
40
|
+
case "rename": {
|
|
41
|
+
assertUserColumnNameAllowed(columnName);
|
|
42
|
+
if (renamedSources.has(operation.oldName)) {
|
|
43
|
+
throw new Error(`Migration for ${tableName} renames ${operation.oldName} more than once.`);
|
|
44
|
+
}
|
|
45
|
+
if (droppedColumns.has(operation.oldName)) {
|
|
46
|
+
throw new Error(`Migration for ${tableName} cannot both drop and rename ${operation.oldName}.`);
|
|
47
|
+
}
|
|
48
|
+
renamedSources.add(operation.oldName);
|
|
49
|
+
operations.push({
|
|
50
|
+
type: "rename",
|
|
51
|
+
column: operation.oldName,
|
|
52
|
+
value: columnName,
|
|
53
|
+
});
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
case "add": {
|
|
57
|
+
assertUserColumnNameAllowed(columnName);
|
|
58
|
+
const builder = toDefinition[tableName]?.[columnName];
|
|
59
|
+
if (!builder) {
|
|
60
|
+
throw new Error(`Migration references unknown target column ${tableName}.${columnName}.`);
|
|
61
|
+
}
|
|
62
|
+
operations.push({
|
|
63
|
+
type: "introduce",
|
|
64
|
+
column: columnName,
|
|
65
|
+
sqlType: builder._sqlType,
|
|
66
|
+
value: operation.default,
|
|
67
|
+
});
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
case "drop": {
|
|
71
|
+
if (renamedSources.has(columnName)) {
|
|
72
|
+
throw new Error(`Migration for ${tableName} cannot both drop and rename ${columnName}.`);
|
|
73
|
+
}
|
|
74
|
+
droppedColumns.add(columnName);
|
|
75
|
+
const builder = fromDefinition[tableName]?.[columnName];
|
|
76
|
+
if (!builder) {
|
|
77
|
+
throw new Error(`Migration references unknown source column ${tableName}.${columnName}.`);
|
|
78
|
+
}
|
|
79
|
+
operations.push({
|
|
80
|
+
type: "drop",
|
|
81
|
+
column: columnName,
|
|
82
|
+
sqlType: builder._sqlType,
|
|
83
|
+
value: operation.backwardsDefault,
|
|
84
|
+
});
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (operations.length > 0) {
|
|
90
|
+
forward.push({
|
|
91
|
+
table: tableName,
|
|
92
|
+
operations,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return forward;
|
|
97
|
+
}
|
|
98
|
+
export function schemaDefinitionToAst(definition) {
|
|
99
|
+
return definitionToSchema(definition);
|
|
100
|
+
}
|
|
101
|
+
export function defineMigration(config) {
|
|
102
|
+
const fromDefinition = normalizeSchemaDefinition(config.from);
|
|
103
|
+
const toDefinition = normalizeSchemaDefinition(config.to);
|
|
104
|
+
return {
|
|
105
|
+
fromHash: config.fromHash,
|
|
106
|
+
toHash: config.toHash,
|
|
107
|
+
from: config.from,
|
|
108
|
+
to: config.to,
|
|
109
|
+
forward: buildForwardLenses(config.migrate, fromDefinition, toDefinition),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -239,6 +239,41 @@ describe("permissions DSL", () => {
|
|
|
239
239
|
},
|
|
240
240
|
});
|
|
241
241
|
});
|
|
242
|
+
it("compiles provenance magic column policies", () => {
|
|
243
|
+
const compiled = definePermissions(app, ({ policy, session }) => [
|
|
244
|
+
policy.todos.allowRead.where({ $createdBy: session.userId }),
|
|
245
|
+
policy.todos.allowUpdate
|
|
246
|
+
.whereOld({ $createdBy: session.userId })
|
|
247
|
+
.whereNew({ $updatedBy: session.userId }),
|
|
248
|
+
]);
|
|
249
|
+
expect(compiled.todos.select?.using).toEqual({
|
|
250
|
+
type: "Cmp",
|
|
251
|
+
column: "$createdBy",
|
|
252
|
+
op: "Eq",
|
|
253
|
+
value: {
|
|
254
|
+
type: "SessionRef",
|
|
255
|
+
path: ["userId"],
|
|
256
|
+
},
|
|
257
|
+
});
|
|
258
|
+
expect(compiled.todos.update?.using).toEqual({
|
|
259
|
+
type: "Cmp",
|
|
260
|
+
column: "$createdBy",
|
|
261
|
+
op: "Eq",
|
|
262
|
+
value: {
|
|
263
|
+
type: "SessionRef",
|
|
264
|
+
path: ["userId"],
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
expect(compiled.todos.update?.with_check).toEqual({
|
|
268
|
+
type: "Cmp",
|
|
269
|
+
column: "$updatedBy",
|
|
270
|
+
op: "Eq",
|
|
271
|
+
value: {
|
|
272
|
+
type: "SessionRef",
|
|
273
|
+
path: ["userId"],
|
|
274
|
+
},
|
|
275
|
+
});
|
|
276
|
+
});
|
|
242
277
|
it("supports plural action aliases and OR-merges repeated rules", () => {
|
|
243
278
|
const compiled = definePermissions(app, ({ policy, anyOf, allowedTo, session }) => [
|
|
244
279
|
policy.todos.allowReads.where({ ownerId: session.userId }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/permissions/index.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/permissions/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,50 @@
|
|
|
1
1
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createJazzClient } from "./create-jazz-client.js";
|
|
3
|
+
const mocks = vi.hoisted(() => {
|
|
4
|
+
const resolveLocalAuthDefaults = vi.fn();
|
|
5
|
+
const resolveClientSession = vi.fn();
|
|
6
|
+
const createDb = vi.fn();
|
|
7
|
+
const managerCtor = vi.fn();
|
|
8
|
+
const managerInit = vi.fn();
|
|
9
|
+
const managerShutdown = vi.fn();
|
|
10
|
+
class MockSubscriptionsOrchestrator {
|
|
11
|
+
constructor(config, instanceDb, sessionArg) {
|
|
12
|
+
managerCtor(config, instanceDb, sessionArg);
|
|
13
|
+
}
|
|
14
|
+
init = managerInit;
|
|
15
|
+
shutdown = managerShutdown;
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
resolveLocalAuthDefaults,
|
|
19
|
+
resolveClientSession,
|
|
20
|
+
createDb,
|
|
21
|
+
managerCtor,
|
|
22
|
+
managerInit,
|
|
23
|
+
managerShutdown,
|
|
24
|
+
MockSubscriptionsOrchestrator,
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
vi.mock("../runtime/local-auth.js", () => ({
|
|
28
|
+
resolveLocalAuthDefaults: mocks.resolveLocalAuthDefaults,
|
|
29
|
+
}));
|
|
30
|
+
vi.mock("../runtime/client-session.js", () => ({
|
|
31
|
+
resolveClientSession: mocks.resolveClientSession,
|
|
32
|
+
}));
|
|
33
|
+
vi.mock("./db.js", async () => {
|
|
34
|
+
const actual = await vi.importActual("./db.js");
|
|
35
|
+
return {
|
|
36
|
+
...actual,
|
|
37
|
+
createDb: mocks.createDb,
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
vi.mock("../subscriptions-orchestrator.js", async () => {
|
|
41
|
+
const actual = await vi.importActual("../subscriptions-orchestrator.js");
|
|
42
|
+
return {
|
|
43
|
+
...actual,
|
|
44
|
+
SubscriptionsOrchestrator: mocks.MockSubscriptionsOrchestrator,
|
|
45
|
+
};
|
|
46
|
+
});
|
|
2
47
|
async function setupCreateClient(options = {}) {
|
|
3
|
-
vi.resetModules();
|
|
4
48
|
const resolvedConfig = options.resolvedConfig ?? {
|
|
5
49
|
appId: "rn-create-client-resolved",
|
|
6
50
|
localAuthMode: "anonymous",
|
|
@@ -8,70 +52,46 @@ async function setupCreateClient(options = {}) {
|
|
|
8
52
|
};
|
|
9
53
|
const dbShutdown = vi.fn(async () => { });
|
|
10
54
|
const db = { shutdown: dbShutdown };
|
|
11
|
-
|
|
12
|
-
|
|
55
|
+
mocks.resolveLocalAuthDefaults.mockImplementation((_input) => resolvedConfig);
|
|
56
|
+
mocks.resolveClientSession.mockImplementation(async () => {
|
|
13
57
|
if (options.sessionError) {
|
|
14
58
|
throw options.sessionError;
|
|
15
59
|
}
|
|
16
60
|
return options.session ?? null;
|
|
17
61
|
});
|
|
18
|
-
|
|
62
|
+
mocks.createDb.mockImplementation(async (_config) => {
|
|
19
63
|
if (options.dbError) {
|
|
20
64
|
throw options.dbError;
|
|
21
65
|
}
|
|
22
66
|
return db;
|
|
23
67
|
});
|
|
24
|
-
|
|
25
|
-
const managerInit = vi.fn(async () => {
|
|
68
|
+
mocks.managerInit.mockImplementation(async () => {
|
|
26
69
|
if (options.orchestratorInitError) {
|
|
27
70
|
throw options.orchestratorInitError;
|
|
28
71
|
}
|
|
29
72
|
});
|
|
30
|
-
|
|
31
|
-
vi.doMock("../runtime/local-auth.js", () => ({
|
|
32
|
-
resolveLocalAuthDefaults,
|
|
33
|
-
}));
|
|
34
|
-
vi.doMock("../runtime/client-session.js", () => ({
|
|
35
|
-
resolveClientSession,
|
|
36
|
-
}));
|
|
37
|
-
vi.doMock("./db.js", () => ({
|
|
38
|
-
createDb,
|
|
39
|
-
}));
|
|
40
|
-
vi.doMock("../subscriptions-orchestrator.js", async () => {
|
|
41
|
-
const actual = await vi.importActual("../subscriptions-orchestrator.js");
|
|
42
|
-
class MockSubscriptionsOrchestrator {
|
|
43
|
-
constructor(config, instanceDb, sessionArg) {
|
|
44
|
-
managerCtor(config, instanceDb, sessionArg);
|
|
45
|
-
}
|
|
46
|
-
init = managerInit;
|
|
47
|
-
shutdown = managerShutdown;
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
...actual,
|
|
51
|
-
SubscriptionsOrchestrator: MockSubscriptionsOrchestrator,
|
|
52
|
-
};
|
|
53
|
-
});
|
|
54
|
-
const { createJazzClient } = await import("./create-jazz-client.js");
|
|
73
|
+
mocks.managerShutdown.mockImplementation(async () => { });
|
|
55
74
|
return {
|
|
56
75
|
createJazzClient,
|
|
57
|
-
createDb,
|
|
58
|
-
resolveLocalAuthDefaults,
|
|
59
|
-
resolveClientSession,
|
|
76
|
+
createDb: mocks.createDb,
|
|
77
|
+
resolveLocalAuthDefaults: mocks.resolveLocalAuthDefaults,
|
|
78
|
+
resolveClientSession: mocks.resolveClientSession,
|
|
60
79
|
resolvedConfig,
|
|
61
80
|
db,
|
|
62
81
|
dbShutdown,
|
|
63
|
-
managerCtor,
|
|
64
|
-
managerInit,
|
|
65
|
-
managerShutdown,
|
|
82
|
+
managerCtor: mocks.managerCtor,
|
|
83
|
+
managerInit: mocks.managerInit,
|
|
84
|
+
managerShutdown: mocks.managerShutdown,
|
|
66
85
|
};
|
|
67
86
|
}
|
|
68
87
|
afterEach(() => {
|
|
88
|
+
mocks.resolveLocalAuthDefaults.mockReset();
|
|
89
|
+
mocks.resolveClientSession.mockReset();
|
|
90
|
+
mocks.createDb.mockReset();
|
|
91
|
+
mocks.managerCtor.mockReset();
|
|
92
|
+
mocks.managerInit.mockReset();
|
|
93
|
+
mocks.managerShutdown.mockReset();
|
|
69
94
|
vi.clearAllMocks();
|
|
70
|
-
vi.resetModules();
|
|
71
|
-
vi.doUnmock("../runtime/local-auth.js");
|
|
72
|
-
vi.doUnmock("../runtime/client-session.js");
|
|
73
|
-
vi.doUnmock("./db.js");
|
|
74
|
-
vi.doUnmock("../subscriptions-orchestrator.js");
|
|
75
95
|
});
|
|
76
96
|
describe("react-native/create-jazz-client", () => {
|
|
77
97
|
it("RNC-U01 initializes client session + manager and shuts down cleanly", async () => {
|