@fougere/cli 0.12.2-alpha.0 → 0.12.4-alpha.0
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/typescript/EntityTypes.d.ts.map +1 -1
- package/dist/typescript/EntityTypes.js +2 -2
- package/dist/typescript/EntityTypes.js.map +1 -1
- package/fronds/analysis/handlers/ExplainHandler.ts +2 -7
- package/fronds/analysis/handlers/MigrateHandler.ts +7 -1
- package/package.json +22 -15
- package/src/typescript/EntityTypes.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTypes.d.ts","sourceRoot":"","sources":["../../src/typescript/EntityTypes.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"EntityTypes.d.ts","sourceRoot":"","sources":["../../src/typescript/EntityTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGlG,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2DD,qBAAa,WAAW;IACF,OAAO,CAAC,QAAQ,CAAC,UAAU;IAA/C,OAAO,eAA8D;IAErE,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,GAAG,WAAW,CAEnD;IAED,MAAM,CAAC,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAS/C;CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { upperFirst } from '@fougere/schema';
|
|
1
|
+
import { Shapes, upperFirst } from '@fougere/schema';
|
|
2
2
|
import { docCommentOf, propertyKey } from './syntax.js';
|
|
3
3
|
/** So a nullable field lands as a union. */
|
|
4
4
|
function typeOf(field) {
|
|
5
|
-
const types =
|
|
5
|
+
const types = Shapes.typesOf(field);
|
|
6
6
|
const nullable = types.includes('null');
|
|
7
7
|
const base = types.find((t) => t !== 'null');
|
|
8
8
|
const inner = baseTypeOf(base, field);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTypes.js","sourceRoot":"","sources":["../../src/typescript/EntityTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+C,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"EntityTypes.js","sourceRoot":"","sources":["../../src/typescript/EntityTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAA+C,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOxD,4CAA4C;AAC5C,SAAS,MAAM,CAAC,KAAsB;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEtC,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC;AAED,+EAA+E;AAC/E,SAAS,UAAU,CAAC,IAAwB,EAAE,KAAsB;IAClE,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IACD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1D,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/D,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QAC7G;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,SAAS,YAAY,CAAC,UAA2C,EAAE,QAA2B;IAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEpD,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,CAAC;AAED,mDAAmD;AACnD,SAAS,WAAW,CAAC,UAA4B,EAAE,MAAM,GAAG,EAAE;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACzC,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;QAE3D,OAAO,GAAG,GAAG,GAAG,MAAM,KAAK,WAAW,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC;AAC9C,CAAC;AAED,MAAM,OAAO,WAAW;IACe,UAAU;IAA/C,YAAqC,UAA4B;0BAA5B,UAAU;IAAqB,CAAC;IAErE,MAAM,CAAC,EAAE,CAAC,UAA4B;QACpC,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,OAAO,GAAuB,EAAE;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC;QACzF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;aAClD,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,GAAG,QAAQ,SAAS,IAAI,gCAAgC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,iBAAiB,CAAC;IACxH,CAAC;CACF;AAED,iFAAiF;AACjF,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,2EAA2E,CAAC,CAAC;IACvG,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
+
addressOf,
|
|
2
3
|
resolveEffectiveOperations,
|
|
3
4
|
type EffectiveOperation,
|
|
4
5
|
type OperationContract,
|
|
5
6
|
} from '@fougere/core';
|
|
6
7
|
import { relative } from 'node:path';
|
|
7
8
|
import ProjectScan from '../services/ProjectScan.js';
|
|
8
|
-
import { ANONYMOUS_SCHEMA_NAME,
|
|
9
|
+
import { ANONYMOUS_SCHEMA_NAME, type SchemaView } from '@fougere/schema';
|
|
9
10
|
import { remotesOf } from '@fougere/core/node';
|
|
10
11
|
|
|
11
12
|
type Cardinality = NonNullable<OperationContract['cardinality']>;
|
|
@@ -232,12 +233,6 @@ function matches(operation: EffectiveOperation, selector: Selector): boolean {
|
|
|
232
233
|
&& (!selector.surface || operation.exposure.surfaces.includes(selector.surface));
|
|
233
234
|
}
|
|
234
235
|
|
|
235
|
-
function addressOf(value: string): string {
|
|
236
|
-
const base = value.endsWith('Handler') ? value.slice(0, -'Handler'.length) : value;
|
|
237
|
-
|
|
238
|
-
return lowerFirst(base);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
236
|
function inputTypeOf(operation: EffectiveOperation): string | null {
|
|
242
237
|
const body = operation.parameters.find((parameter) => parameter.binding.source.kind === 'input');
|
|
243
238
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadConfig } from '@fougere/core/node';
|
|
2
2
|
import { resolveStorage } from '@fougere/defaults';
|
|
3
|
-
import {
|
|
3
|
+
import type { Plan, StepChange } from '@fougere/adapter-sql';
|
|
4
4
|
import type { SetDiff } from '@fougere/schema';
|
|
5
5
|
import ProjectScan from '../services/ProjectScan.js';
|
|
6
6
|
import { chainOf } from '../versions.js';
|
|
@@ -54,6 +54,12 @@ export default class MigrateHandler {
|
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
// Resolved from the project rather than named in this package's dependencies:
|
|
58
|
+
// `@fougere/adapter-sql` declares `better-sqlite3`, so a CLI depending on it installs
|
|
59
|
+
// 26 MB of native module into every `npm create fougere`. A project that migrates
|
|
60
|
+
// declares the adapter itself, which is where this resolves from.
|
|
61
|
+
const { actualState, desiredTables, planStep, collapseChain, applyStep } = await import('@fougere/adapter-sql');
|
|
62
|
+
|
|
57
63
|
const tables = desiredTables(scan as never);
|
|
58
64
|
// Each frond's chain is composed on its own — its versions are its own line — and the
|
|
59
65
|
// results are gathered by SOURCE, because an engine is what a statement runs against.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fougere/cli",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.4-alpha.0",
|
|
4
4
|
"description": "The Fougere CLI — compose a workspace, serve a frond, call an operation.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"fougere",
|
|
@@ -42,27 +42,34 @@
|
|
|
42
42
|
"jiti": "^2.4.2",
|
|
43
43
|
"picocolors": "^1.1.1",
|
|
44
44
|
"safe-regex": "^2.1.1",
|
|
45
|
-
"@fougere/compiler": "0.12.
|
|
46
|
-
"@fougere/
|
|
47
|
-
"@fougere/
|
|
48
|
-
"@fougere/
|
|
49
|
-
"@fougere/
|
|
50
|
-
"@fougere/
|
|
51
|
-
"@fougere/
|
|
52
|
-
"@fougere/core": "0.12.2-alpha.0"
|
|
45
|
+
"@fougere/compiler": "0.12.4-alpha.0",
|
|
46
|
+
"@fougere/container": "0.12.4-alpha.0",
|
|
47
|
+
"@fougere/core": "0.12.4-alpha.0",
|
|
48
|
+
"@fougere/schema": "0.12.4-alpha.0",
|
|
49
|
+
"@fougere/testing": "0.12.4-alpha.0",
|
|
50
|
+
"@fougere/transport-http": "0.12.4-alpha.0",
|
|
51
|
+
"@fougere/defaults": "0.12.4-alpha.0"
|
|
53
52
|
},
|
|
54
53
|
"devDependencies": {
|
|
55
54
|
"vitest": "^4.1.0",
|
|
56
|
-
"@fougere/
|
|
57
|
-
"@fougere/
|
|
58
|
-
"@fougere/
|
|
59
|
-
"@fougere/
|
|
60
|
-
"@fougere/
|
|
61
|
-
"@fougere/
|
|
55
|
+
"@fougere/admin": "0.12.4-alpha.0",
|
|
56
|
+
"@fougere/next": "0.12.4-alpha.0",
|
|
57
|
+
"@fougere/nuxt": "0.12.4-alpha.0",
|
|
58
|
+
"@fougere/oclif": "0.12.4-alpha.0",
|
|
59
|
+
"@fougere/svelte": "0.12.4-alpha.0",
|
|
60
|
+
"@fougere/react": "0.12.4-alpha.0"
|
|
62
61
|
},
|
|
63
62
|
"publishConfig": {
|
|
64
63
|
"access": "public"
|
|
65
64
|
},
|
|
65
|
+
"peerDependencies": {
|
|
66
|
+
"@fougere/adapter-sql": "^0.12.4-alpha.0"
|
|
67
|
+
},
|
|
68
|
+
"peerDependenciesMeta": {
|
|
69
|
+
"@fougere/adapter-sql": {
|
|
70
|
+
"optional": true
|
|
71
|
+
}
|
|
72
|
+
},
|
|
66
73
|
"scripts": {
|
|
67
74
|
"build": "rm -rf dist && tsc && chmod +x dist/bin.js && node dist/bin.js build",
|
|
68
75
|
"test": "vitest run",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { upperFirst, type FieldDescriptor, type SchemaDescriptor } from '@fougere/schema';
|
|
1
|
+
import { Shapes, upperFirst, type FieldDescriptor, type SchemaDescriptor } from '@fougere/schema';
|
|
2
2
|
import { docCommentOf, propertyKey } from './syntax.js';
|
|
3
3
|
|
|
4
4
|
export interface EntityTypesOptions {
|
|
@@ -8,7 +8,7 @@ export interface EntityTypesOptions {
|
|
|
8
8
|
|
|
9
9
|
/** So a nullable field lands as a union. */
|
|
10
10
|
function typeOf(field: FieldDescriptor): string {
|
|
11
|
-
const types =
|
|
11
|
+
const types = Shapes.typesOf(field);
|
|
12
12
|
const nullable = types.includes('null');
|
|
13
13
|
const base = types.find((t) => t !== 'null');
|
|
14
14
|
const inner = baseTypeOf(base, field);
|