@zenstackhq/sdk 1.0.0-beta.8 → 1.0.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/constants.d.ts +2 -1
- package/constants.js +4 -6
- package/constants.js.map +1 -1
- package/dmmf-helpers/aggregate-helpers.d.ts +1 -1
- package/dmmf-helpers/aggregate-helpers.js +2 -1
- package/dmmf-helpers/aggregate-helpers.js.map +1 -1
- package/dmmf-helpers/include-helpers.d.ts +1 -1
- package/dmmf-helpers/missing-types-helper.d.ts +1 -1
- package/dmmf-helpers/model-helpers.d.ts +1 -1
- package/dmmf-helpers/modelArgs-helpers.d.ts +1 -1
- package/dmmf-helpers/select-helpers.d.ts +1 -1
- package/package.json +10 -4
- package/prisma.d.ts +14 -0
- package/prisma.js +50 -3
- package/prisma.js.map +1 -1
- package/types.d.ts +25 -3
- package/types.js.map +1 -1
- package/utils.d.ts +18 -9
- package/utils.js +75 -10
- package/utils.js.map +1 -1
package/constants.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @zenstackhq/runtime package name
|
|
3
3
|
*/
|
|
4
4
|
export declare const RUNTIME_PACKAGE = "@zenstackhq/runtime";
|
|
5
|
-
export {
|
|
5
|
+
export { CrudFailureReason } from '@zenstackhq/runtime';
|
|
6
6
|
/**
|
|
7
7
|
* Expression context
|
|
8
8
|
*/
|
|
@@ -11,3 +11,4 @@ export declare enum ExpressionContext {
|
|
|
11
11
|
AccessPolicy = "AccessPolicy",
|
|
12
12
|
ValidationRule = "ValidationRule"
|
|
13
13
|
}
|
|
14
|
+
export declare const STD_LIB_MODULE_NAME = "stdlib.zmodel";
|
package/constants.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.STD_LIB_MODULE_NAME = exports.ExpressionContext = exports.CrudFailureReason = exports.RUNTIME_PACKAGE = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* @zenstackhq/runtime package name
|
|
6
6
|
*/
|
|
7
7
|
exports.RUNTIME_PACKAGE = '@zenstackhq/runtime';
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
Object.defineProperty(exports, "GUARD_FIELD_NAME", { enumerable: true, get: function () { return constants_1.GUARD_FIELD_NAME; } });
|
|
11
|
-
Object.defineProperty(exports, "TRANSACTION_FIELD_NAME", { enumerable: true, get: function () { return constants_1.TRANSACTION_FIELD_NAME; } });
|
|
12
|
-
Object.defineProperty(exports, "CrudFailureReason", { enumerable: true, get: function () { return constants_1.CrudFailureReason; } });
|
|
8
|
+
var runtime_1 = require("@zenstackhq/runtime");
|
|
9
|
+
Object.defineProperty(exports, "CrudFailureReason", { enumerable: true, get: function () { return runtime_1.CrudFailureReason; } });
|
|
13
10
|
/**
|
|
14
11
|
* Expression context
|
|
15
12
|
*/
|
|
@@ -19,4 +16,5 @@ var ExpressionContext;
|
|
|
19
16
|
ExpressionContext["AccessPolicy"] = "AccessPolicy";
|
|
20
17
|
ExpressionContext["ValidationRule"] = "ValidationRule";
|
|
21
18
|
})(ExpressionContext = exports.ExpressionContext || (exports.ExpressionContext = {}));
|
|
19
|
+
exports.STD_LIB_MODULE_NAME = 'stdlib.zmodel';
|
|
22
20
|
//# sourceMappingURL=constants.js.map
|
package/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,eAAe,GAAG,qBAAqB,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,eAAe,GAAG,qBAAqB,CAAC;AAErD,+CAAwD;AAA/C,4GAAA,iBAAiB,OAAA;AAE1B;;GAEG;AACH,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;IAC7B,sDAAiC,CAAA;AACrC,CAAC,EAJW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAI5B;AAEY,QAAA,mBAAmB,GAAG,eAAe,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DMMF } from '@prisma/generator-helper';
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
2
|
import { AggregateOperationSupport } from './types';
|
|
3
3
|
export declare const isAggregateInputType: (name: string) => boolean;
|
|
4
4
|
export declare function addMissingInputObjectTypesForAggregate(inputObjectTypes: DMMF.InputType[], outputObjectTypes: DMMF.OutputType[]): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveAggregateOperationSupport = exports.addMissingInputObjectTypesForAggregate = exports.isAggregateInputType = void 0;
|
|
4
|
+
const upper_case_first_1 = require("upper-case-first");
|
|
4
5
|
const isAggregateOutputType = (name) => /(?:Count|Avg|Sum|Min|Max)AggregateOutputType$/.test(name);
|
|
5
6
|
const isAggregateInputType = (name) => name.endsWith('CountAggregateInput') ||
|
|
6
7
|
name.endsWith('SumAggregateInput') ||
|
|
@@ -14,7 +15,7 @@ function addMissingInputObjectTypesForAggregate(inputObjectTypes, outputObjectTy
|
|
|
14
15
|
const name = aggregateOutputType.name.replace(/(?:OutputType|Output)$/, '');
|
|
15
16
|
inputObjectTypes.push({
|
|
16
17
|
constraints: { maxNumFields: null, minNumFields: null },
|
|
17
|
-
name: `${name}Input`,
|
|
18
|
+
name: `${(0, upper_case_first_1.upperCaseFirst)(name)}Input`,
|
|
18
19
|
fields: aggregateOutputType.fields.map((field) => ({
|
|
19
20
|
name: field.name,
|
|
20
21
|
isNullable: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-helpers.js","sourceRoot":"","sources":["../../src/dmmf-helpers/aggregate-helpers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"aggregate-helpers.js","sourceRoot":"","sources":["../../src/dmmf-helpers/aggregate-helpers.ts"],"names":[],"mappings":";;;AACA,uDAAkD;AAGlD,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEpG,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE,CACjD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;IACpC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAL1B,QAAA,oBAAoB,wBAKM;AAEvC,SAAgB,sCAAsC,CAClD,gBAAkC,EAClC,iBAAoC;IAEpC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE;QACpD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAC5E,gBAAgB,CAAC,IAAI,CAAC;YAClB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YACvD,IAAI,EAAE,GAAG,IAAA,iCAAc,EAAC,IAAI,CAAC,OAAO;YACpC,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE,KAAK;gBACjB,UAAU,EAAE;oBACR;wBACI,MAAM,EAAE,KAAK;wBACb,IAAI,EAAE,MAAM;wBACZ,QAAQ,EAAE,QAAQ;qBACrB;iBACJ;aACJ,CAAC,CAAC;SACN,CAAC,CAAC;KACN;AACL,CAAC;AAxBD,wFAwBC;AAED,SAAgB,gCAAgC,CAAC,gBAAkC;IAC/E,MAAM,yBAAyB,GAA8B,EAAE,CAAC;IAChE,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE;QACtC,IAAI,IAAA,4BAAoB,EAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACxC,yBAAyB,CAAC,KAAK,CAAC,mCACzB,yBAAyB,CAAC,KAAK,CAAC,KACnC,KAAK,EAAE,IAAI,GACd,CAAC;aACL;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtC,yBAAyB,CAAC,KAAK,CAAC,mCACzB,yBAAyB,CAAC,KAAK,CAAC,KACnC,GAAG,EAAE,IAAI,GACZ,CAAC;aACL;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtC,yBAAyB,CAAC,KAAK,CAAC,mCACzB,yBAAyB,CAAC,KAAK,CAAC,KACnC,GAAG,EAAE,IAAI,GACZ,CAAC;aACL;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtC,yBAAyB,CAAC,KAAK,CAAC,mCACzB,yBAAyB,CAAC,KAAK,CAAC,KACnC,GAAG,EAAE,IAAI,GACZ,CAAC;aACL;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtC,yBAAyB,CAAC,KAAK,CAAC,mCACzB,yBAAyB,CAAC,KAAK,CAAC,KACnC,GAAG,EAAE,IAAI,GACZ,CAAC;aACL;SACJ;KACJ;IACD,OAAO,yBAAyB,CAAC;AACrC,CAAC;AAvCD,4EAuCC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { DMMF } from '@prisma/generator-helper';
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
2
|
export declare function addMissingInputObjectTypesForInclude(inputObjectTypes: DMMF.InputType[], models: DMMF.Model[]): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { DMMF } from '@prisma/generator-helper';
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
2
|
export declare function addMissingInputObjectTypes(inputObjectTypes: DMMF.InputType[], outputObjectTypes: DMMF.OutputType[], models: DMMF.Model[]): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DMMF } from '@prisma/generator-helper';
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
2
|
export declare function checkModelHasModelRelation(model: DMMF.Model): boolean;
|
|
3
3
|
export declare function checkModelHasManyModelRelation(model: DMMF.Model): boolean;
|
|
4
4
|
export declare function checkIsModelRelationField(modelField: DMMF.Field): boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { DMMF } from '@prisma/generator-helper';
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
2
|
export declare function addMissingInputObjectTypesForModelArgs(inputObjectTypes: DMMF.InputType[], models: DMMF.Model[]): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { DMMF } from '@prisma/generator-helper';
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
2
|
export declare function addMissingInputObjectTypesForSelect(inputObjectTypes: DMMF.InputType[], outputObjectTypes: DMMF.OutputType[], models: DMMF.Model[]): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/sdk",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "ZenStack plugin development SDK",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -11,13 +11,19 @@
|
|
|
11
11
|
"author": "",
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@prisma/generator-helper": "
|
|
14
|
+
"@prisma/generator-helper": "^5.0.0",
|
|
15
|
+
"@prisma/internals": "^4.16.0",
|
|
16
|
+
"@prisma/internals-v5": "npm:@prisma/internals@^5.0.0",
|
|
15
17
|
"prettier": "^2.8.3",
|
|
18
|
+
"semver": "^7.3.8",
|
|
16
19
|
"ts-morph": "^16.0.0",
|
|
17
|
-
"
|
|
18
|
-
"@zenstackhq/
|
|
20
|
+
"upper-case-first": "^2.0.2",
|
|
21
|
+
"@zenstackhq/language": "1.0.0",
|
|
22
|
+
"@zenstackhq/runtime": "1.0.0"
|
|
19
23
|
},
|
|
20
24
|
"devDependencies": {
|
|
25
|
+
"@types/node": "^18.0.0",
|
|
26
|
+
"@types/semver": "^7.3.13",
|
|
21
27
|
"copyfiles": "^2.4.1",
|
|
22
28
|
"rimraf": "^3.0.2",
|
|
23
29
|
"typescript": "^4.9.4"
|
package/prisma.d.ts
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
1
2
|
import { Model } from './ast';
|
|
3
|
+
export { getPrismaVersion } from '@zenstackhq/runtime';
|
|
2
4
|
/**
|
|
3
5
|
* Given a ZModel and an import context directory, compute the import spec for the Prisma Client.
|
|
4
6
|
*/
|
|
5
7
|
export declare function getPrismaClientImportSpec(model: Model, importingFromDir: string): any;
|
|
8
|
+
export type GetDMMFOptions = {
|
|
9
|
+
datamodel?: string;
|
|
10
|
+
cwd?: string;
|
|
11
|
+
prismaPath?: string;
|
|
12
|
+
datamodelPath?: string;
|
|
13
|
+
retry?: number;
|
|
14
|
+
previewFeatures?: string[];
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Loads Prisma DMMF with appropriate version
|
|
18
|
+
*/
|
|
19
|
+
export declare function getDMMF(options: GetDMMFOptions): Promise<DMMF.Document>;
|
package/prisma.js
CHANGED
|
@@ -1,12 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
2
26
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
27
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
28
|
};
|
|
5
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getPrismaClientImportSpec = void 0;
|
|
30
|
+
exports.getDMMF = exports.getPrismaClientImportSpec = exports.getPrismaVersion = void 0;
|
|
31
|
+
const runtime_1 = require("@zenstackhq/runtime");
|
|
32
|
+
const path_1 = __importDefault(require("path"));
|
|
33
|
+
const semver = __importStar(require("semver"));
|
|
7
34
|
const ast_1 = require("./ast");
|
|
8
35
|
const utils_1 = require("./utils");
|
|
9
|
-
|
|
36
|
+
// reexport
|
|
37
|
+
var runtime_2 = require("@zenstackhq/runtime");
|
|
38
|
+
Object.defineProperty(exports, "getPrismaVersion", { enumerable: true, get: function () { return runtime_2.getPrismaVersion; } });
|
|
10
39
|
/**
|
|
11
40
|
* Given a ZModel and an import context directory, compute the import spec for the Prisma Client.
|
|
12
41
|
*/
|
|
@@ -48,7 +77,25 @@ function getPrismaClientImportSpec(model, importingFromDir) {
|
|
|
48
77
|
// console.log('PRISMA CLIENT PATH:', resolvedPrismaClientOutput);
|
|
49
78
|
// console.log('IMPORTING PATH:', importingFromDir);
|
|
50
79
|
// compute prisma client absolute output dir relative to the importing file
|
|
51
|
-
return path_1.default.relative(importingFromDir, resolvedPrismaClientOutput);
|
|
80
|
+
return normalizePath(path_1.default.relative(importingFromDir, resolvedPrismaClientOutput));
|
|
52
81
|
}
|
|
53
82
|
exports.getPrismaClientImportSpec = getPrismaClientImportSpec;
|
|
83
|
+
function normalizePath(p) {
|
|
84
|
+
return p ? p.split(path_1.default.sep).join(path_1.default.posix.sep) : p;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Loads Prisma DMMF with appropriate version
|
|
88
|
+
*/
|
|
89
|
+
function getDMMF(options) {
|
|
90
|
+
const prismaVersion = (0, runtime_1.getPrismaVersion)();
|
|
91
|
+
if (prismaVersion && semver.gte(prismaVersion, '5.0.0')) {
|
|
92
|
+
const _getDMMF = require('@prisma/internals-v5').getDMMF;
|
|
93
|
+
return _getDMMF(options);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
const _getDMMF = require('@prisma/internals').getDMMF;
|
|
97
|
+
return _getDMMF(options);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.getDMMF = getDMMF;
|
|
54
101
|
//# sourceMappingURL=prisma.js.map
|
package/prisma.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../src/prisma.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../src/prisma.ts"],"names":[],"mappings":"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"}
|
package/types.d.ts
CHANGED
|
@@ -1,21 +1,43 @@
|
|
|
1
|
-
import { DMMF } from '@prisma/generator-helper';
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
2
2
|
import { Model } from '@zenstackhq/language/ast';
|
|
3
3
|
/**
|
|
4
4
|
* Plugin configuration option value type
|
|
5
5
|
*/
|
|
6
6
|
export type OptionValue = string | number | boolean;
|
|
7
7
|
/**
|
|
8
|
-
* Plugin configuration
|
|
8
|
+
* Plugin configuration options
|
|
9
9
|
*/
|
|
10
10
|
export type PluginOptions = {
|
|
11
|
+
/***
|
|
12
|
+
* The provider package
|
|
13
|
+
*/
|
|
11
14
|
provider?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The path of the ZModel schema
|
|
17
|
+
*/
|
|
12
18
|
schemaPath: string;
|
|
19
|
+
/**
|
|
20
|
+
* The name of the plugin
|
|
21
|
+
*/
|
|
13
22
|
name: string;
|
|
14
23
|
} & Record<string, OptionValue | OptionValue[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Global options that apply to all plugins
|
|
26
|
+
*/
|
|
27
|
+
export type PluginGlobalOptions = {
|
|
28
|
+
/**
|
|
29
|
+
* Default output directory
|
|
30
|
+
*/
|
|
31
|
+
output?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Whether to compile the generated code
|
|
34
|
+
*/
|
|
35
|
+
compile: boolean;
|
|
36
|
+
};
|
|
15
37
|
/**
|
|
16
38
|
* Plugin entry point function definition
|
|
17
39
|
*/
|
|
18
|
-
export type PluginFunction = (model: Model, options: PluginOptions, dmmf?: DMMF.Document,
|
|
40
|
+
export type PluginFunction = (model: Model, options: PluginOptions, dmmf?: DMMF.Document, globalOptions?: PluginGlobalOptions) => Promise<string[]> | string[] | Promise<void> | void;
|
|
19
41
|
/**
|
|
20
42
|
* Plugin error
|
|
21
43
|
*/
|
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAqDA;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK;IAClC,YAAmB,MAAc,EAAE,OAAe;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QADA,WAAM,GAAN,MAAM,CAAQ;IAEjC,CAAC;CACJ;AAJD,kCAIC"}
|
package/utils.d.ts
CHANGED
|
@@ -1,25 +1,30 @@
|
|
|
1
|
-
import { AstNode, DataModel, DataModelAttribute, DataModelField, DataModelFieldAttribute, Enum, EnumField, Expression, FunctionDecl, InternalAttribute, Model, Reference, ReferenceExpr } from '@zenstackhq/language/ast';
|
|
2
|
-
import { PluginOptions } from './types';
|
|
1
|
+
import { AstNode, ConfigExpr, DataModel, DataModelAttribute, DataModelField, DataModelFieldAttribute, Enum, EnumField, Expression, FunctionDecl, InternalAttribute, Model, Reference, ReferenceExpr } from '@zenstackhq/language/ast';
|
|
3
2
|
import { ExpressionContext } from './constants';
|
|
3
|
+
import { PluginOptions } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* Gets data models that are not ignored
|
|
6
6
|
*/
|
|
7
7
|
export declare function getDataModels(model: Model): DataModel[];
|
|
8
8
|
export declare function resolved<T extends AstNode>(ref: Reference<T>): T;
|
|
9
|
-
export declare function getLiteral<T extends string | number | boolean | any = any>(expr: Expression | undefined): T | undefined;
|
|
10
|
-
export declare function getArray(expr: Expression | undefined): Expression[] | undefined;
|
|
11
|
-
export declare function getLiteralArray<T extends string | number | boolean | any = any>(expr: Expression | undefined): T[] | undefined;
|
|
12
|
-
export declare function getObjectLiteral<T>(expr: Expression | undefined): T | undefined;
|
|
13
|
-
export
|
|
9
|
+
export declare function getLiteral<T extends string | number | boolean | any = any>(expr: Expression | ConfigExpr | undefined): T | undefined;
|
|
10
|
+
export declare function getArray(expr: Expression | ConfigExpr | undefined): Expression[] | (import("@zenstackhq/language/ast").LiteralExpr | import("@zenstackhq/language/ast").ConfigInvocationExpr)[] | undefined;
|
|
11
|
+
export declare function getLiteralArray<T extends string | number | boolean | any = any>(expr: Expression | ConfigExpr | undefined): T[] | undefined;
|
|
12
|
+
export declare function getObjectLiteral<T>(expr: Expression | ConfigExpr | undefined): T | undefined;
|
|
13
|
+
export declare function indentString(string: string, count?: number): string;
|
|
14
14
|
export declare function hasAttribute(decl: DataModel | DataModelField | Enum | EnumField, name: string): boolean;
|
|
15
15
|
export declare function getAttributeArgs(attr: DataModelAttribute | DataModelFieldAttribute | InternalAttribute): Record<string, Expression>;
|
|
16
16
|
export declare function getAttributeArg(attr: DataModelAttribute | DataModelFieldAttribute | InternalAttribute, name: string): Expression | undefined;
|
|
17
17
|
export declare function getAttributeArgLiteral<T extends string | number | boolean>(attr: DataModelAttribute | DataModelFieldAttribute, name: string): T | undefined;
|
|
18
18
|
export declare function isEnumFieldReference(node: AstNode): node is ReferenceExpr;
|
|
19
|
+
export declare function isDataModelFieldReference(node: AstNode): node is ReferenceExpr;
|
|
20
|
+
/**
|
|
21
|
+
* Gets `@@id` fields declared at the data model level
|
|
22
|
+
*/
|
|
23
|
+
export declare function getModelIdFields(model: DataModel): DataModelField[];
|
|
19
24
|
/**
|
|
20
|
-
* Gets
|
|
25
|
+
* Gets `@@unique` fields declared at the data model level
|
|
21
26
|
*/
|
|
22
|
-
export declare function
|
|
27
|
+
export declare function getModelUniqueFields(model: DataModel): DataModelField[];
|
|
23
28
|
/**
|
|
24
29
|
* Returns if the given field is declared as an id field.
|
|
25
30
|
*/
|
|
@@ -35,3 +40,7 @@ export declare function isForeignKeyField(field: DataModelField): boolean;
|
|
|
35
40
|
export declare function resolvePath(_path: string, options: PluginOptions): string;
|
|
36
41
|
export declare function requireOption<T>(options: PluginOptions, name: string): T;
|
|
37
42
|
export declare function getFunctionExpressionContext(funcDecl: FunctionDecl): ExpressionContext[];
|
|
43
|
+
export declare function isFutureExpr(node: AstNode): boolean;
|
|
44
|
+
export declare function isFromStdlib(node: AstNode): boolean;
|
|
45
|
+
export declare function getContainingModel(node: AstNode | undefined): Model | null;
|
|
46
|
+
export declare function getPreviewFeatures(model: Model): string[] | undefined;
|
package/utils.js
CHANGED
|
@@ -3,9 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getFunctionExpressionContext = exports.requireOption = exports.resolvePath = exports.isForeignKeyField = exports.isRelationshipField = exports.isIdField = exports.
|
|
6
|
+
exports.getPreviewFeatures = exports.getContainingModel = exports.isFromStdlib = exports.isFutureExpr = exports.getFunctionExpressionContext = exports.requireOption = exports.resolvePath = exports.isForeignKeyField = exports.isRelationshipField = exports.isIdField = exports.getModelUniqueFields = exports.getModelIdFields = exports.isDataModelFieldReference = exports.isEnumFieldReference = exports.getAttributeArgLiteral = exports.getAttributeArg = exports.getAttributeArgs = exports.hasAttribute = exports.indentString = exports.getObjectLiteral = exports.getLiteralArray = exports.getArray = exports.getLiteral = exports.resolved = exports.getDataModels = void 0;
|
|
7
7
|
const ast_1 = require("@zenstackhq/language/ast");
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const constants_1 = require("./constants");
|
|
9
10
|
/**
|
|
10
11
|
* Gets data models that are not ignored
|
|
11
12
|
*/
|
|
@@ -29,7 +30,7 @@ function getLiteral(expr) {
|
|
|
29
30
|
}
|
|
30
31
|
exports.getLiteral = getLiteral;
|
|
31
32
|
function getArray(expr) {
|
|
32
|
-
return (0, ast_1.isArrayExpr)(expr) ? expr.items : undefined;
|
|
33
|
+
return (0, ast_1.isArrayExpr)(expr) || (0, ast_1.isConfigArrayExpr)(expr) ? expr.items : undefined;
|
|
33
34
|
}
|
|
34
35
|
exports.getArray = getArray;
|
|
35
36
|
function getLiteralArray(expr) {
|
|
@@ -37,7 +38,7 @@ function getLiteralArray(expr) {
|
|
|
37
38
|
if (!arr) {
|
|
38
39
|
return undefined;
|
|
39
40
|
}
|
|
40
|
-
return arr.map((item) => getLiteral(item)).filter((v) => v !== undefined);
|
|
41
|
+
return arr.map((item) => (0, ast_1.isExpression)(item) && getLiteral(item)).filter((v) => v !== undefined);
|
|
41
42
|
}
|
|
42
43
|
exports.getLiteralArray = getLiteralArray;
|
|
43
44
|
function getObjectLiteral(expr) {
|
|
@@ -70,7 +71,7 @@ function indentString(string, count = 4) {
|
|
|
70
71
|
const indent = ' ';
|
|
71
72
|
return string.replace(/^(?!\s*$)/gm, indent.repeat(count));
|
|
72
73
|
}
|
|
73
|
-
exports.
|
|
74
|
+
exports.indentString = indentString;
|
|
74
75
|
function hasAttribute(decl, name) {
|
|
75
76
|
return !!decl.attributes.find((attr) => resolved(attr.decl).name === name);
|
|
76
77
|
}
|
|
@@ -110,10 +111,14 @@ function isEnumFieldReference(node) {
|
|
|
110
111
|
return (0, ast_1.isReferenceExpr)(node) && (0, ast_1.isEnumField)(node.target.ref);
|
|
111
112
|
}
|
|
112
113
|
exports.isEnumFieldReference = isEnumFieldReference;
|
|
114
|
+
function isDataModelFieldReference(node) {
|
|
115
|
+
return (0, ast_1.isReferenceExpr)(node) && (0, ast_1.isDataModelField)(node.target.ref);
|
|
116
|
+
}
|
|
117
|
+
exports.isDataModelFieldReference = isDataModelFieldReference;
|
|
113
118
|
/**
|
|
114
|
-
* Gets id fields declared at the data model level
|
|
119
|
+
* Gets `@@id` fields declared at the data model level
|
|
115
120
|
*/
|
|
116
|
-
function
|
|
121
|
+
function getModelIdFields(model) {
|
|
117
122
|
const idAttr = model.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@id'; });
|
|
118
123
|
if (!idAttr) {
|
|
119
124
|
return [];
|
|
@@ -126,21 +131,52 @@ function getIdFields(model) {
|
|
|
126
131
|
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
127
132
|
.map((item) => resolved(item.target));
|
|
128
133
|
}
|
|
129
|
-
exports.
|
|
134
|
+
exports.getModelIdFields = getModelIdFields;
|
|
135
|
+
/**
|
|
136
|
+
* Gets `@@unique` fields declared at the data model level
|
|
137
|
+
*/
|
|
138
|
+
function getModelUniqueFields(model) {
|
|
139
|
+
const uniqueAttr = model.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@unique'; });
|
|
140
|
+
if (!uniqueAttr) {
|
|
141
|
+
return [];
|
|
142
|
+
}
|
|
143
|
+
const fieldsArg = uniqueAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
144
|
+
if (!fieldsArg || !(0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
return fieldsArg.value.items
|
|
148
|
+
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
149
|
+
.map((item) => resolved(item.target));
|
|
150
|
+
}
|
|
151
|
+
exports.getModelUniqueFields = getModelUniqueFields;
|
|
130
152
|
/**
|
|
131
153
|
* Returns if the given field is declared as an id field.
|
|
132
154
|
*/
|
|
133
155
|
function isIdField(field) {
|
|
134
156
|
// field-level @id attribute
|
|
135
|
-
if (field
|
|
157
|
+
if (hasAttribute(field, '@id')) {
|
|
136
158
|
return true;
|
|
137
159
|
}
|
|
138
|
-
// model-level @@id attribute with a list of fields
|
|
139
160
|
const model = field.$container;
|
|
140
|
-
|
|
161
|
+
// model-level @@id attribute with a list of fields
|
|
162
|
+
const modelLevelIds = getModelIdFields(model);
|
|
141
163
|
if (modelLevelIds.includes(field)) {
|
|
142
164
|
return true;
|
|
143
165
|
}
|
|
166
|
+
if (model.fields.some((f) => hasAttribute(f, '@id')) || modelLevelIds.length > 0) {
|
|
167
|
+
// the model already has id field, don't check @unique and @@unique
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
// then, the first field with @unique can be used as id
|
|
171
|
+
const firstUniqueField = model.fields.find((f) => hasAttribute(f, '@unique'));
|
|
172
|
+
if (firstUniqueField) {
|
|
173
|
+
return firstUniqueField === field;
|
|
174
|
+
}
|
|
175
|
+
// last, the first model level @@unique can be used as id
|
|
176
|
+
const modelLevelUnique = getModelUniqueFields(model);
|
|
177
|
+
if (modelLevelUnique.includes(field)) {
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
144
180
|
return false;
|
|
145
181
|
}
|
|
146
182
|
exports.isIdField = isIdField;
|
|
@@ -212,4 +248,33 @@ function getFunctionExpressionContext(funcDecl) {
|
|
|
212
248
|
return funcAllowedContext;
|
|
213
249
|
}
|
|
214
250
|
exports.getFunctionExpressionContext = getFunctionExpressionContext;
|
|
251
|
+
function isFutureExpr(node) {
|
|
252
|
+
var _a;
|
|
253
|
+
return !!((0, ast_1.isInvocationExpr)(node) && ((_a = node.function.ref) === null || _a === void 0 ? void 0 : _a.name) === 'future' && isFromStdlib(node.function.ref));
|
|
254
|
+
}
|
|
255
|
+
exports.isFutureExpr = isFutureExpr;
|
|
256
|
+
function isFromStdlib(node) {
|
|
257
|
+
const model = getContainingModel(node);
|
|
258
|
+
return !!model && !!model.$document && model.$document.uri.path.endsWith(constants_1.STD_LIB_MODULE_NAME);
|
|
259
|
+
}
|
|
260
|
+
exports.isFromStdlib = isFromStdlib;
|
|
261
|
+
function getContainingModel(node) {
|
|
262
|
+
if (!node) {
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
return (0, ast_1.isModel)(node) ? node : getContainingModel(node.$container);
|
|
266
|
+
}
|
|
267
|
+
exports.getContainingModel = getContainingModel;
|
|
268
|
+
function getPreviewFeatures(model) {
|
|
269
|
+
const jsGenerator = model.declarations.find((d) => (0, ast_1.isGeneratorDecl)(d) &&
|
|
270
|
+
d.fields.some((f) => f.name === 'provider' && getLiteral(f.value) === 'prisma-client-js'));
|
|
271
|
+
if (jsGenerator) {
|
|
272
|
+
const previewFeaturesField = jsGenerator.fields.find((f) => f.name === 'previewFeatures');
|
|
273
|
+
if (previewFeaturesField) {
|
|
274
|
+
return getLiteralArray(previewFeaturesField.value);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return [];
|
|
278
|
+
}
|
|
279
|
+
exports.getPreviewFeatures = getPreviewFeatures;
|
|
215
280
|
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|