@zenstackhq/sdk 1.0.0-beta.7 → 1.0.0-beta.9
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 +1 -1
- package/constants.js +5 -5
- package/constants.js.map +1 -1
- package/dmmf-helpers/aggregate-helpers.d.ts +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 +9 -5
- package/prisma.d.ts +18 -0
- package/prisma.js +65 -3
- package/prisma.js.map +1 -1
- package/types.d.ts +1 -1
- package/utils.d.ts +6 -2
- package/utils.js +38 -7
- 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 { AUXILIARY_FIELDS, GUARD_FIELD_NAME, TRANSACTION_FIELD_NAME, CrudFailureReason
|
|
5
|
+
export { AUXILIARY_FIELDS, GUARD_FIELD_NAME, TRANSACTION_FIELD_NAME, CrudFailureReason } from '@zenstackhq/runtime';
|
|
6
6
|
/**
|
|
7
7
|
* Expression context
|
|
8
8
|
*/
|
package/constants.js
CHANGED
|
@@ -5,11 +5,11 @@ exports.ExpressionContext = exports.CrudFailureReason = exports.TRANSACTION_FIEL
|
|
|
5
5
|
* @zenstackhq/runtime package name
|
|
6
6
|
*/
|
|
7
7
|
exports.RUNTIME_PACKAGE = '@zenstackhq/runtime';
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "AUXILIARY_FIELDS", { enumerable: true, get: function () { return
|
|
10
|
-
Object.defineProperty(exports, "GUARD_FIELD_NAME", { enumerable: true, get: function () { return
|
|
11
|
-
Object.defineProperty(exports, "TRANSACTION_FIELD_NAME", { enumerable: true, get: function () { return
|
|
12
|
-
Object.defineProperty(exports, "CrudFailureReason", { enumerable: true, get: function () { return
|
|
8
|
+
var runtime_1 = require("@zenstackhq/runtime");
|
|
9
|
+
Object.defineProperty(exports, "AUXILIARY_FIELDS", { enumerable: true, get: function () { return runtime_1.AUXILIARY_FIELDS; } });
|
|
10
|
+
Object.defineProperty(exports, "GUARD_FIELD_NAME", { enumerable: true, get: function () { return runtime_1.GUARD_FIELD_NAME; } });
|
|
11
|
+
Object.defineProperty(exports, "TRANSACTION_FIELD_NAME", { enumerable: true, get: function () { return runtime_1.TRANSACTION_FIELD_NAME; } });
|
|
12
|
+
Object.defineProperty(exports, "CrudFailureReason", { enumerable: true, get: function () { return runtime_1.CrudFailureReason; } });
|
|
13
13
|
/**
|
|
14
14
|
* Expression context
|
|
15
15
|
*/
|
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,+CAAoH;AAA3G,2GAAA,gBAAgB,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,iHAAA,sBAAsB,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAEtF;;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"}
|
|
@@ -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,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-beta.
|
|
3
|
+
"version": "1.0.0-beta.9",
|
|
4
4
|
"description": "ZenStack plugin development SDK",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -11,13 +11,17 @@
|
|
|
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.10.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
|
-
"@zenstackhq/language": "1.0.0-beta.
|
|
18
|
-
"@zenstackhq/runtime": "1.0.0-beta.
|
|
20
|
+
"@zenstackhq/language": "1.0.0-beta.9",
|
|
21
|
+
"@zenstackhq/runtime": "1.0.0-beta.9"
|
|
19
22
|
},
|
|
20
23
|
"devDependencies": {
|
|
24
|
+
"@types/semver": "^7.3.13",
|
|
21
25
|
"copyfiles": "^2.4.1",
|
|
22
26
|
"rimraf": "^3.0.2",
|
|
23
27
|
"typescript": "^4.9.4"
|
|
@@ -25,7 +29,7 @@
|
|
|
25
29
|
"scripts": {
|
|
26
30
|
"clean": "rimraf dist",
|
|
27
31
|
"lint": "eslint src --ext ts",
|
|
28
|
-
"build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./LICENSE ./README.md dist",
|
|
32
|
+
"build": "pnpm lint && pnpm clean && tsc && copyfiles ./package.json ./LICENSE ./README.md dist && pnpm pack dist --pack-destination '../../../.build'",
|
|
29
33
|
"watch": "tsc --watch",
|
|
30
34
|
"publish-dev": "pnpm build && pnpm publish --tag dev"
|
|
31
35
|
}
|
package/prisma.d.ts
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
1
2
|
import { Model } from './ast';
|
|
2
3
|
/**
|
|
3
4
|
* Given a ZModel and an import context directory, compute the import spec for the Prisma Client.
|
|
4
5
|
*/
|
|
5
6
|
export declare function getPrismaClientImportSpec(model: Model, importingFromDir: string): any;
|
|
7
|
+
/**
|
|
8
|
+
* Gets installed Prisma version by first checking "@prisma/client" and if not available,
|
|
9
|
+
* "prisma".
|
|
10
|
+
*/
|
|
11
|
+
export declare function getPrismaVersion(): string | undefined;
|
|
12
|
+
export type GetDMMFOptions = {
|
|
13
|
+
datamodel?: string;
|
|
14
|
+
cwd?: string;
|
|
15
|
+
prismaPath?: string;
|
|
16
|
+
datamodelPath?: string;
|
|
17
|
+
retry?: number;
|
|
18
|
+
previewFeatures?: string[];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Loads Prisma DMMF with appropriate version
|
|
22
|
+
*/
|
|
23
|
+
export declare function getDMMF(options: GetDMMFOptions): Promise<DMMF.Document>;
|
package/prisma.js
CHANGED
|
@@ -1,12 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getPrismaClientImportSpec = void 0;
|
|
29
|
+
exports.getDMMF = exports.getPrismaVersion = exports.getPrismaClientImportSpec = void 0;
|
|
30
|
+
const internals_1 = require("@prisma/internals");
|
|
31
|
+
const internals_v5_1 = require("@prisma/internals-v5");
|
|
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
|
-
const path_1 = __importDefault(require("path"));
|
|
10
36
|
/**
|
|
11
37
|
* Given a ZModel and an import context directory, compute the import spec for the Prisma Client.
|
|
12
38
|
*/
|
|
@@ -48,7 +74,43 @@ function getPrismaClientImportSpec(model, importingFromDir) {
|
|
|
48
74
|
// console.log('PRISMA CLIENT PATH:', resolvedPrismaClientOutput);
|
|
49
75
|
// console.log('IMPORTING PATH:', importingFromDir);
|
|
50
76
|
// compute prisma client absolute output dir relative to the importing file
|
|
51
|
-
return path_1.default.relative(importingFromDir, resolvedPrismaClientOutput);
|
|
77
|
+
return normalizePath(path_1.default.relative(importingFromDir, resolvedPrismaClientOutput));
|
|
52
78
|
}
|
|
53
79
|
exports.getPrismaClientImportSpec = getPrismaClientImportSpec;
|
|
80
|
+
function normalizePath(p) {
|
|
81
|
+
return p ? p.split(path_1.default.sep).join(path_1.default.posix.sep) : p;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Gets installed Prisma version by first checking "@prisma/client" and if not available,
|
|
85
|
+
* "prisma".
|
|
86
|
+
*/
|
|
87
|
+
function getPrismaVersion() {
|
|
88
|
+
try {
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
90
|
+
return require('@prisma/client/package.json').version;
|
|
91
|
+
}
|
|
92
|
+
catch (_a) {
|
|
93
|
+
try {
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
95
|
+
return require('prisma/package.json').version;
|
|
96
|
+
}
|
|
97
|
+
catch (_b) {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.getPrismaVersion = getPrismaVersion;
|
|
103
|
+
/**
|
|
104
|
+
* Loads Prisma DMMF with appropriate version
|
|
105
|
+
*/
|
|
106
|
+
function getDMMF(options) {
|
|
107
|
+
const prismaVersion = getPrismaVersion();
|
|
108
|
+
if (prismaVersion && semver.gte(prismaVersion, '5.0.0')) {
|
|
109
|
+
return (0, internals_v5_1.getDMMF)(options);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return (0, internals_1.getDMMF)(options);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.getDMMF = getDMMF;
|
|
54
116
|
//# 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
package/utils.d.ts
CHANGED
|
@@ -17,9 +17,13 @@ export declare function getAttributeArg(attr: DataModelAttribute | DataModelFiel
|
|
|
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
19
|
/**
|
|
20
|
-
* Gets id fields declared at the data model level
|
|
20
|
+
* Gets `@@id` fields declared at the data model level
|
|
21
21
|
*/
|
|
22
|
-
export declare function
|
|
22
|
+
export declare function getModelIdFields(model: DataModel): DataModelField[];
|
|
23
|
+
/**
|
|
24
|
+
* Gets `@@unique` fields declared at the data model level
|
|
25
|
+
*/
|
|
26
|
+
export declare function getModelUniqueFields(model: DataModel): DataModelField[];
|
|
23
27
|
/**
|
|
24
28
|
* Returns if the given field is declared as an id field.
|
|
25
29
|
*/
|
package/utils.js
CHANGED
|
@@ -3,7 +3,7 @@ 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.getFunctionExpressionContext = exports.requireOption = exports.resolvePath = exports.isForeignKeyField = exports.isRelationshipField = exports.isIdField = exports.getModelUniqueFields = exports.getModelIdFields = exports.isEnumFieldReference = exports.getAttributeArgLiteral = exports.getAttributeArg = exports.getAttributeArgs = exports.hasAttribute = 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
9
|
/**
|
|
@@ -111,9 +111,9 @@ function isEnumFieldReference(node) {
|
|
|
111
111
|
}
|
|
112
112
|
exports.isEnumFieldReference = isEnumFieldReference;
|
|
113
113
|
/**
|
|
114
|
-
* Gets id fields declared at the data model level
|
|
114
|
+
* Gets `@@id` fields declared at the data model level
|
|
115
115
|
*/
|
|
116
|
-
function
|
|
116
|
+
function getModelIdFields(model) {
|
|
117
117
|
const idAttr = model.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@id'; });
|
|
118
118
|
if (!idAttr) {
|
|
119
119
|
return [];
|
|
@@ -126,21 +126,52 @@ function getIdFields(model) {
|
|
|
126
126
|
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
127
127
|
.map((item) => resolved(item.target));
|
|
128
128
|
}
|
|
129
|
-
exports.
|
|
129
|
+
exports.getModelIdFields = getModelIdFields;
|
|
130
|
+
/**
|
|
131
|
+
* Gets `@@unique` fields declared at the data model level
|
|
132
|
+
*/
|
|
133
|
+
function getModelUniqueFields(model) {
|
|
134
|
+
const uniqueAttr = model.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@unique'; });
|
|
135
|
+
if (!uniqueAttr) {
|
|
136
|
+
return [];
|
|
137
|
+
}
|
|
138
|
+
const fieldsArg = uniqueAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
139
|
+
if (!fieldsArg || !(0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
140
|
+
return [];
|
|
141
|
+
}
|
|
142
|
+
return fieldsArg.value.items
|
|
143
|
+
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
144
|
+
.map((item) => resolved(item.target));
|
|
145
|
+
}
|
|
146
|
+
exports.getModelUniqueFields = getModelUniqueFields;
|
|
130
147
|
/**
|
|
131
148
|
* Returns if the given field is declared as an id field.
|
|
132
149
|
*/
|
|
133
150
|
function isIdField(field) {
|
|
134
151
|
// field-level @id attribute
|
|
135
|
-
if (field
|
|
152
|
+
if (hasAttribute(field, '@id')) {
|
|
136
153
|
return true;
|
|
137
154
|
}
|
|
138
|
-
// model-level @@id attribute with a list of fields
|
|
139
155
|
const model = field.$container;
|
|
140
|
-
|
|
156
|
+
// model-level @@id attribute with a list of fields
|
|
157
|
+
const modelLevelIds = getModelIdFields(model);
|
|
141
158
|
if (modelLevelIds.includes(field)) {
|
|
142
159
|
return true;
|
|
143
160
|
}
|
|
161
|
+
if (model.fields.some((f) => hasAttribute(f, '@id')) || modelLevelIds.length > 0) {
|
|
162
|
+
// the model already has id field, don't check @unique and @@unique
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
// then, the first field with @unique can be used as id
|
|
166
|
+
const firstUniqueField = model.fields.find((f) => hasAttribute(f, '@unique'));
|
|
167
|
+
if (firstUniqueField) {
|
|
168
|
+
return firstUniqueField === field;
|
|
169
|
+
}
|
|
170
|
+
// last, the first model level @@unique can be used as id
|
|
171
|
+
const modelLevelUnique = getModelUniqueFields(model);
|
|
172
|
+
if (modelLevelUnique.includes(field)) {
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
144
175
|
return false;
|
|
145
176
|
}
|
|
146
177
|
exports.isIdField = isIdField;
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|