zenstack 0.1.47 → 0.1.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/LICENSE.md +9 -0
  2. package/bin/cli +1 -1
  3. package/bundle/asset/logo-dark-256.png +0 -0
  4. package/bundle/asset/logo-dark.png +0 -0
  5. package/bundle/asset/logo-light-256.png +0 -0
  6. package/bundle/asset/logo-light.png +0 -0
  7. package/bundle/cli/index.js +6849 -0
  8. package/bundle/cli/index.js.map +7 -0
  9. package/bundle/extension.js +39 -0
  10. package/bundle/extension.js.map +7 -0
  11. package/bundle/language-server/main.js +6105 -0
  12. package/bundle/language-server/main.js.map +7 -0
  13. package/{out/generator → bundle/res}/package.template.json +0 -0
  14. package/bundle/res/stdlib.zmodel +101 -0
  15. package/{out/generator → bundle/res}/tsconfig.template.json +0 -0
  16. package/package.json +38 -14
  17. package/src/cli/cli-util.ts +71 -0
  18. package/src/cli/index.ts +182 -0
  19. package/src/extension.ts +76 -0
  20. package/src/generator/constants.ts +5 -0
  21. package/src/generator/index.ts +102 -0
  22. package/{out/generator/next-auth/index.js → src/generator/next-auth/index.ts} +49 -58
  23. package/src/generator/prisma/expression-writer.ts +360 -0
  24. package/src/generator/prisma/index.ts +35 -0
  25. package/src/generator/prisma/prisma-builder.ts +370 -0
  26. package/src/generator/prisma/query-gard-generator.ts +213 -0
  27. package/src/generator/prisma/schema-generator.ts +305 -0
  28. package/src/generator/prisma/typescript-expression-transformer.ts +108 -0
  29. package/src/generator/react-hooks/index.ts +184 -0
  30. package/src/generator/service/index.ts +110 -0
  31. package/src/generator/types.ts +17 -0
  32. package/src/generator/utils.ts +18 -0
  33. package/src/language-server/constants.ts +28 -0
  34. package/src/language-server/generated/ast.ts +616 -0
  35. package/{out/language-server/generated/grammar.js → src/language-server/generated/grammar.ts} +5 -8
  36. package/src/language-server/generated/module.ts +24 -0
  37. package/src/language-server/langium-ext.d.ts +10 -0
  38. package/src/language-server/lsp/zmodel-definition-provider.ts +87 -0
  39. package/src/language-server/main.ts +13 -0
  40. package/src/language-server/types.ts +25 -0
  41. package/src/language-server/validator/attribute-validator.ts +11 -0
  42. package/src/language-server/validator/datamodel-validator.ts +311 -0
  43. package/src/language-server/validator/datasource-validator.ts +102 -0
  44. package/src/language-server/validator/enum-validator.ts +14 -0
  45. package/src/language-server/validator/schema-validator.ts +31 -0
  46. package/src/language-server/validator/utils.ts +158 -0
  47. package/src/language-server/validator/zmodel-validator.ts +84 -0
  48. package/src/language-server/zmodel-linker.ts +446 -0
  49. package/src/language-server/zmodel-module.ts +136 -0
  50. package/src/language-server/zmodel-scope.ts +45 -0
  51. package/src/language-server/zmodel-workspace-manager.ts +23 -0
  52. package/src/language-server/zmodel.langium +197 -0
  53. package/{out/cli → src/res}/package.template.json +2 -3
  54. package/src/res/stdlib.zmodel +101 -0
  55. package/{out/cli → src/res}/tsconfig.template.json +1 -1
  56. package/src/utils/exec-utils.ts +8 -0
  57. package/src/utils/indent-string.ts +9 -0
  58. package/LICENSE +0 -21
  59. package/out/cli/cli-util.js +0 -64
  60. package/out/cli/cli-util.js.map +0 -1
  61. package/out/cli/generator.js +0 -1
  62. package/out/cli/generator.js.map +0 -1
  63. package/out/cli/index.js +0 -124
  64. package/out/cli/index.js.map +0 -1
  65. package/out/extension.js +0 -81
  66. package/out/extension.js.map +0 -1
  67. package/out/generator/constants.js +0 -9
  68. package/out/generator/constants.js.map +0 -1
  69. package/out/generator/data-server/index.js +0 -1
  70. package/out/generator/data-server/index.js.map +0 -1
  71. package/out/generator/index.js +0 -98
  72. package/out/generator/index.js.map +0 -1
  73. package/out/generator/next-auth/index.js.map +0 -1
  74. package/out/generator/prisma/expression-writer.js +0 -287
  75. package/out/generator/prisma/expression-writer.js.map +0 -1
  76. package/out/generator/prisma/index.js +0 -44
  77. package/out/generator/prisma/index.js.map +0 -1
  78. package/out/generator/prisma/plain-expression-builder.js +0 -69
  79. package/out/generator/prisma/plain-expression-builder.js.map +0 -1
  80. package/out/generator/prisma/prisma-builder.js +0 -307
  81. package/out/generator/prisma/prisma-builder.js.map +0 -1
  82. package/out/generator/prisma/query-gard-generator.js +0 -159
  83. package/out/generator/prisma/query-gard-generator.js.map +0 -1
  84. package/out/generator/prisma/schema-generator.js +0 -193
  85. package/out/generator/prisma/schema-generator.js.map +0 -1
  86. package/out/generator/query-guard/index.js +0 -2
  87. package/out/generator/query-guard/index.js.map +0 -1
  88. package/out/generator/react-hooks/index.js +0 -179
  89. package/out/generator/react-hooks/index.js.map +0 -1
  90. package/out/generator/server/data/data-generator.js +0 -376
  91. package/out/generator/server/data/data-generator.js.map +0 -1
  92. package/out/generator/server/data/expression-writer.js +0 -287
  93. package/out/generator/server/data/expression-writer.js.map +0 -1
  94. package/out/generator/server/data/plain-expression-builder.js +0 -69
  95. package/out/generator/server/data/plain-expression-builder.js.map +0 -1
  96. package/out/generator/server/data-generator.js +0 -82
  97. package/out/generator/server/data-generator.js.map +0 -1
  98. package/out/generator/server/expression-writer.js +0 -1
  99. package/out/generator/server/expression-writer.js.map +0 -1
  100. package/out/generator/server/function/function-generator.js +0 -50
  101. package/out/generator/server/function/function-generator.js.map +0 -1
  102. package/out/generator/server/function-generator.js +0 -13
  103. package/out/generator/server/function-generator.js.map +0 -1
  104. package/out/generator/server/index.js +0 -88
  105. package/out/generator/server/index.js.map +0 -1
  106. package/out/generator/server/js-expression-builder.js +0 -1
  107. package/out/generator/server/js-expression-builder.js.map +0 -1
  108. package/out/generator/server/plain-expression-builder.js +0 -1
  109. package/out/generator/server/plain-expression-builder.js.map +0 -1
  110. package/out/generator/server/server-code-generator.js +0 -3
  111. package/out/generator/server/server-code-generator.js.map +0 -1
  112. package/out/generator/server/server-code-writer.js +0 -1
  113. package/out/generator/server/server-code-writer.js.map +0 -1
  114. package/out/generator/service/index.js +0 -133
  115. package/out/generator/service/index.js.map +0 -1
  116. package/out/generator/types.js +0 -10
  117. package/out/generator/types.js.map +0 -1
  118. package/out/generator/utils.js +0 -10
  119. package/out/generator/utils.js.map +0 -1
  120. package/out/langium-ext.js +0 -3
  121. package/out/langium-ext.js.map +0 -1
  122. package/out/language-server/constants.js +0 -20
  123. package/out/language-server/constants.js.map +0 -1
  124. package/out/language-server/generated/ast.js +0 -390
  125. package/out/language-server/generated/ast.js.map +0 -1
  126. package/out/language-server/generated/grammar.js.map +0 -1
  127. package/out/language-server/generated/module.js +0 -23
  128. package/out/language-server/generated/module.js.map +0 -1
  129. package/out/language-server/langium-ext.js +0 -3
  130. package/out/language-server/langium-ext.js.map +0 -1
  131. package/out/language-server/main.js +0 -13
  132. package/out/language-server/main.js.map +0 -1
  133. package/out/language-server/stdlib.zmodel +0 -23
  134. package/out/language-server/types.js +0 -3
  135. package/out/language-server/types.js.map +0 -1
  136. package/out/language-server/validator/attribute-validator copy.js +0 -12
  137. package/out/language-server/validator/attribute-validator copy.js.map +0 -1
  138. package/out/language-server/validator/attribute-validator.js +0 -7
  139. package/out/language-server/validator/attribute-validator.js.map +0 -1
  140. package/out/language-server/validator/datamodel-validator.js +0 -199
  141. package/out/language-server/validator/datamodel-validator.js.map +0 -1
  142. package/out/language-server/validator/datasource-validator copy.js +0 -77
  143. package/out/language-server/validator/datasource-validator copy.js.map +0 -1
  144. package/out/language-server/validator/datasource-validator.js +0 -77
  145. package/out/language-server/validator/datasource-validator.js.map +0 -1
  146. package/out/language-server/validator/enum-validator.js +0 -10
  147. package/out/language-server/validator/enum-validator.js.map +0 -1
  148. package/out/language-server/validator/model-validator.js +0 -21
  149. package/out/language-server/validator/model-validator.js.map +0 -1
  150. package/out/language-server/validator/schema-validator.js +0 -21
  151. package/out/language-server/validator/schema-validator.js.map +0 -1
  152. package/out/language-server/validator/utils.js +0 -106
  153. package/out/language-server/validator/utils.js.map +0 -1
  154. package/out/language-server/validator/zmodel-validator.js +0 -52
  155. package/out/language-server/validator/zmodel-validator.js.map +0 -1
  156. package/out/language-server/zmodel-index.js +0 -11
  157. package/out/language-server/zmodel-index.js.map +0 -1
  158. package/out/language-server/zmodel-linker.js +0 -249
  159. package/out/language-server/zmodel-linker.js.map +0 -1
  160. package/out/language-server/zmodel-module.js +0 -46
  161. package/out/language-server/zmodel-module.js.map +0 -1
  162. package/out/language-server/zmodel-scope.js +0 -41
  163. package/out/language-server/zmodel-scope.js.map +0 -1
  164. package/out/language-server/zmodel-validator.js +0 -35
  165. package/out/language-server/zmodel-validator.js.map +0 -1
  166. package/out/utils/exec-utils.js +0 -9
  167. package/out/utils/exec-utils.js.map +0 -1
  168. package/out/utils/indent-string.js +0 -9
  169. package/out/utils/indent-string.js.map +0 -1
package/out/cli/index.js DELETED
@@ -1,124 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.generateAction = void 0;
16
- const commander_1 = require("commander");
17
- const node_1 = require("langium/node");
18
- const module_1 = require("../language-server/generated/module");
19
- const zmodel_module_1 = require("../language-server/zmodel-module");
20
- const cli_util_1 = require("./cli-util");
21
- const types_1 = require("../generator/types");
22
- const generator_1 = require("../generator");
23
- const constants_1 = require("../generator/constants");
24
- const colors_1 = __importDefault(require("colors"));
25
- const exec_utils_1 = require("../utils/exec-utils");
26
- const change_case_1 = require("change-case");
27
- const path_1 = __importDefault(require("path"));
28
- const generateAction = (options) => __awaiter(void 0, void 0, void 0, function* () {
29
- const services = (0, zmodel_module_1.createZModelServices)(node_1.NodeFileSystem).ZModel;
30
- const model = yield (0, cli_util_1.extractAstNode)(options.schema, services);
31
- const context = {
32
- schema: model,
33
- outDir: path_1.default.dirname(options.schema),
34
- // TODO: make this configurable
35
- generatedCodeDir: constants_1.GENERATED_CODE_PATH,
36
- };
37
- try {
38
- yield new generator_1.ZenStackGenerator().generate(context);
39
- }
40
- catch (err) {
41
- if (err instanceof types_1.GeneratorError) {
42
- console.error(colors_1.default.red(err.message));
43
- process.exit(1);
44
- }
45
- }
46
- });
47
- exports.generateAction = generateAction;
48
- function prismaAction(prismaCmd) {
49
- return (options, command) => __awaiter(this, void 0, void 0, function* () {
50
- let optStr = Array.from(Object.entries(options))
51
- .map(([k, v]) => {
52
- let optVal = v;
53
- if (k === 'schema') {
54
- optVal = path_1.default.join(path_1.default.dirname(v), 'schema.prisma');
55
- }
56
- return ('--' +
57
- (0, change_case_1.paramCase)(k) +
58
- (typeof optVal === 'string' ? ` ${optVal}` : ''));
59
- })
60
- .join(' ');
61
- const prismaExec = `npx prisma ${prismaCmd} ${command.name()} ${optStr}`;
62
- console.log(prismaExec);
63
- try {
64
- (0, exec_utils_1.execSync)(prismaExec);
65
- }
66
- catch (_a) {
67
- console.error(colors_1.default.red('Prisma command failed to execute. See errors above.'));
68
- process.exit(1);
69
- }
70
- });
71
- }
72
- function default_1() {
73
- const program = new commander_1.Command('zenstack');
74
- program.version(require('../../package.json').version, '-v --version', 'display CLI version');
75
- const schemaExtensions = module_1.ZModelLanguageMetaData.fileExtensions.join(', ');
76
- program
77
- .description(`${colors_1.default.bold.blue('ζ')} ZenStack simplifies fullstack development by generating backend services and Typescript clients from a data model.\n\nDocumentation: https://zenstack.dev/doc.`)
78
- .showHelpAfterError()
79
- .showSuggestionAfterError();
80
- const schemaOption = new commander_1.Option('--schema <file>', `schema file (with extension ${schemaExtensions})`).default('./zenstack/schema.zmodel');
81
- program
82
- .command('generate')
83
- .description('generates RESTful API and Typescript client for your data model')
84
- .addOption(schemaOption)
85
- .action(exports.generateAction);
86
- const migrate = program
87
- .command('migrate')
88
- .description(`wraps Prisma's ${colors_1.default.cyan('migrate')} command`);
89
- migrate
90
- .command('dev')
91
- .description(`alias for ${colors_1.default.cyan('prisma migrate dev')}\nCreate a migration, apply it to the database, generate db client.`)
92
- .addOption(schemaOption)
93
- .option('--create-only', 'Create a migration without applying it')
94
- .option('-n --name <name>', 'Name the migration')
95
- .option('--skip-seed', 'Skip triggering seed')
96
- .action(prismaAction('migrate'));
97
- migrate
98
- .command('reset')
99
- .description(`alias for ${colors_1.default.cyan('prisma migrate reset')}\nReset your database and apply all migrations.`)
100
- .addOption(schemaOption)
101
- .option('--force', 'Skip the confirmation prompt')
102
- .action(prismaAction('migrate'));
103
- migrate
104
- .command('deploy')
105
- .description(`alias for ${colors_1.default.cyan('prisma migrate deploy')}\nApply pending migrations to the database in production/staging.`)
106
- .addOption(schemaOption)
107
- .action(prismaAction('migrate'));
108
- migrate
109
- .command('status')
110
- .description(`alias for ${colors_1.default.cyan('prisma migrate status')}\nCheck the status of migrations in the production/staging database.`)
111
- .addOption(schemaOption)
112
- .action(prismaAction('migrate'));
113
- const db = program
114
- .command('db')
115
- .description(`wraps Prisma's ${colors_1.default.cyan('db')} command`);
116
- db.command('push')
117
- .description(`alias for ${colors_1.default.cyan('prisma db push')}\nPush the Prisma schema state to the database.`)
118
- .addOption(schemaOption)
119
- .option('--accept-data-loss', 'Ignore data loss warnings')
120
- .action(prismaAction('db'));
121
- program.parse(process.argv);
122
- }
123
- exports.default = default_1;
124
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/out/extension.js DELETED
@@ -1,81 +0,0 @@
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
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.deactivate = exports.activate = void 0;
27
- const vscode = __importStar(require("vscode"));
28
- const path = __importStar(require("path"));
29
- const node_1 = require("vscode-languageclient/node");
30
- let client;
31
- // This function is called when the extension is activated.
32
- function activate(context) {
33
- client = startLanguageClient(context);
34
- }
35
- exports.activate = activate;
36
- // This function is called when the extension is deactivated.
37
- function deactivate() {
38
- if (client) {
39
- return client.stop();
40
- }
41
- return undefined;
42
- }
43
- exports.deactivate = deactivate;
44
- function startLanguageClient(context) {
45
- const serverModule = context.asAbsolutePath(path.join('out', 'language-server', 'main'));
46
- // The debug options for the server
47
- // --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging.
48
- // By setting `process.env.DEBUG_BREAK` to a truthy value, the language server will wait until a debugger is attached.
49
- const debugOptions = {
50
- execArgv: [
51
- '--nolazy',
52
- `--inspect${process.env.DEBUG_BREAK ? '-brk' : ''}=${process.env.DEBUG_SOCKET || '6009'}`,
53
- ],
54
- };
55
- // If the extension is launched in debug mode then the debug server options are used
56
- // Otherwise the run options are used
57
- const serverOptions = {
58
- run: { module: serverModule, transport: node_1.TransportKind.ipc },
59
- debug: {
60
- module: serverModule,
61
- transport: node_1.TransportKind.ipc,
62
- options: debugOptions,
63
- },
64
- };
65
- const fileSystemWatcher = vscode.workspace.createFileSystemWatcher('**/*.zmodel');
66
- context.subscriptions.push(fileSystemWatcher);
67
- // Options to control the language client
68
- const clientOptions = {
69
- documentSelector: [{ scheme: 'file', language: 'zmodel' }],
70
- synchronize: {
71
- // Notify the server about file changes to files contained in the workspace
72
- fileEvents: fileSystemWatcher,
73
- },
74
- };
75
- // Create the language client and start the client.
76
- const client = new node_1.LanguageClient('zmodel', 'ZenStack Model', serverOptions, clientOptions);
77
- // Start the client. This will also launch the server
78
- client.start();
79
- return client;
80
- }
81
- //# sourceMappingURL=extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,2CAA6B;AAC7B,qDAKoC;AAEpC,IAAI,MAAsB,CAAC;AAE3B,2DAA2D;AAC3D,SAAgB,QAAQ,CAAC,OAAgC;IACrD,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAFD,4BAEC;AAED,6DAA6D;AAC7D,SAAgB,UAAU;IACtB,IAAI,MAAM,EAAE;QACR,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;KACxB;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AALD,gCAKC;AAED,SAAS,mBAAmB,CAAC,OAAgC;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CACvC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAC9C,CAAC;IACF,mCAAmC;IACnC,8GAA8G;IAC9G,sHAAsH;IACtH,MAAM,YAAY,GAAG;QACjB,QAAQ,EAAE;YACN,UAAU;YACV,YAAY,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAC7C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAChC,EAAE;SACL;KACJ,CAAC;IAEF,oFAAoF;IACpF,qCAAqC;IACrC,MAAM,aAAa,GAAkB;QACjC,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,oBAAa,CAAC,GAAG,EAAE;QAC3D,KAAK,EAAE;YACH,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,oBAAa,CAAC,GAAG;YAC5B,OAAO,EAAE,YAAY;SACxB;KACJ,CAAC;IAEF,MAAM,iBAAiB,GACnB,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;IAC5D,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE9C,yCAAyC;IACzC,MAAM,aAAa,GAA0B;QACzC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC1D,WAAW,EAAE;YACT,2EAA2E;YAC3E,UAAU,EAAE,iBAAiB;SAChC;KACJ,CAAC;IAEF,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,qBAAc,CAC7B,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,aAAa,CAChB,CAAC;IAEF,qDAAqD;IACrD,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GENERATED_CODE_PATH = exports.API_ROUTE_NAME = exports.TRANSACTION_FIELD_NAME = exports.GUARD_FIELD_NAME = exports.INTERNAL_PACKAGE = void 0;
4
- exports.INTERNAL_PACKAGE = '@zenstackhq/internal';
5
- exports.GUARD_FIELD_NAME = 'zenstack_guard';
6
- exports.TRANSACTION_FIELD_NAME = 'zenstack_transaction';
7
- exports.API_ROUTE_NAME = 'zenstack';
8
- exports.GENERATED_CODE_PATH = 'node_modules/.zenstack';
9
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/generator/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,sBAAsB,CAAC;AAC1C,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AACpC,QAAA,sBAAsB,GAAG,sBAAsB,CAAC;AAChD,QAAA,cAAc,GAAG,UAAU,CAAC;AAC5B,QAAA,mBAAmB,GAAG,wBAAwB,CAAC"}
@@ -1 +0,0 @@
1
- 'use strict';var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve(value);});}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value));}catch(e){reject(e);}}function rejected(value){try{step(generator['throw'](value));}catch(e){reject(e);}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected);}step((generator=generator.apply(thisArg,_arguments||[])).next());});};Object.defineProperty(exports,'__esModule',{value:true});class DataServerGenerator{generate(context){return __awaiter(this,void 0,void 0,function*(){throw new Error('Method not implemented.');});}}exports.default=DataServerGenerator;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/data-server/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,MAAqB,mBAAmB;IAC9B,QAAQ,CAAC,OAAgB;;YAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC/C,CAAC;KAAA;CACJ;AAJD,sCAIC"}
@@ -1,98 +0,0 @@
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
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.ZenStackGenerator = void 0;
39
- const types_1 = require("./types");
40
- const fs = __importStar(require("fs"));
41
- const colors_1 = __importDefault(require("colors"));
42
- const prisma_1 = __importDefault(require("./prisma"));
43
- const service_1 = __importDefault(require("./service"));
44
- const react_hooks_1 = __importDefault(require("./react-hooks"));
45
- const next_auth_1 = __importDefault(require("./next-auth"));
46
- const path_1 = __importDefault(require("path"));
47
- const exec_utils_1 = require("../utils/exec-utils");
48
- class ZenStackGenerator {
49
- generate(context) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- // folder that stores generated prisma schema and migrations
52
- if (!fs.existsSync(context.outDir)) {
53
- fs.mkdirSync(context.outDir);
54
- }
55
- // folder that stores generated zenstack code
56
- if (fs.existsSync(context.generatedCodeDir)) {
57
- fs.rmSync(context.generatedCodeDir, {
58
- force: true,
59
- recursive: true,
60
- });
61
- }
62
- fs.mkdirSync(context.generatedCodeDir);
63
- const version = require('../../package.json').version;
64
- console.log(colors_1.default.bold(`⌛️ Running ZenStack generator v${version}`));
65
- const generators = [
66
- new prisma_1.default(),
67
- new service_1.default(),
68
- new react_hooks_1.default(),
69
- ];
70
- try {
71
- require('next-auth');
72
- generators.push(new next_auth_1.default());
73
- }
74
- catch (_a) {
75
- console.warn(colors_1.default.yellow('Next-auth module is not installed, skipping generating adapter.'));
76
- }
77
- for (const generator of generators) {
78
- yield generator.generate(context);
79
- }
80
- // generate package.json
81
- const packageJson = require(path_1.default.join(__dirname, 'package.template.json'));
82
- fs.writeFileSync(path_1.default.join(context.generatedCodeDir, 'package.json'), JSON.stringify(packageJson, undefined, 4));
83
- // compile ts sources
84
- const tsConfig = require(path_1.default.join(__dirname, 'tsconfig.template.json'));
85
- fs.writeFileSync(path_1.default.join(context.generatedCodeDir, 'tsconfig.json'), JSON.stringify(tsConfig, undefined, 4));
86
- try {
87
- (0, exec_utils_1.execSync)(`npx tsc -p "${path_1.default.join(context.generatedCodeDir, 'tsconfig.json')}"`);
88
- }
89
- catch (_b) {
90
- throw new types_1.GeneratorError('Something went wrong, generated runtime code failed to compile...\nPlease check errors above.');
91
- }
92
- console.log(colors_1.default.blue(' ✔️ Typescript source files transpiled'));
93
- console.log(colors_1.default.green(colors_1.default.bold('👻 All generators completed successfully!')));
94
- });
95
- }
96
- }
97
- exports.ZenStackGenerator = ZenStackGenerator;
98
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkD;AAClD,uCAAyB;AACzB,oDAA4B;AAC5B,sDAAuC;AACvC,wDAAyC;AACzC,gEAAgD;AAChD,4DAA4C;AAC5C,gDAAwB;AACxB,oDAA+C;AAE/C,MAAa,iBAAiB;IACpB,QAAQ,CAAC,OAAgB;;YAC3B,4DAA4D;YAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAChC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAChC;YAED,6CAA6C;YAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;gBACzC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE;oBAChC,KAAK,EAAE,IAAI;oBACX,SAAS,EAAE,IAAI;iBAClB,CAAC,CAAC;aACN;YACD,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,gBAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC,CAAC;YAEtE,MAAM,UAAU,GAAG;gBACf,IAAI,gBAAe,EAAE;gBACrB,IAAI,iBAAgB,EAAE;gBACtB,IAAI,qBAAmB,EAAE;aAC5B,CAAC;YAEF,IAAI;gBACA,OAAO,CAAC,WAAW,CAAC,CAAC;gBACrB,UAAU,CAAC,IAAI,CAAC,IAAI,mBAAiB,EAAE,CAAC,CAAC;aAC5C;YAAC,WAAM;gBACJ,OAAO,CAAC,IAAI,CACR,gBAAM,CAAC,MAAM,CACT,iEAAiE,CACpE,CACJ,CAAC;aACL;YAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;gBAChC,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aACrC;YAED,wBAAwB;YACxB,MAAM,WAAW,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CACjC,SAAS,EACT,uBAAuB,CAC1B,CAAC,CAAC;YACH,EAAE,CAAC,aAAa,CACZ,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,EACnD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAC5C,CAAC;YAEF,qBAAqB;YACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CAC9B,SAAS,EACT,wBAAwB,CAC3B,CAAC,CAAC;YACH,EAAE,CAAC,aAAa,CACZ,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC,EACpD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CACzC,CAAC;YAEF,IAAI;gBACA,IAAA,qBAAQ,EACJ,eAAe,cAAI,CAAC,IAAI,CACpB,OAAO,CAAC,gBAAgB,EACxB,eAAe,CAClB,GAAG,CACP,CAAC;aACL;YAAC,WAAM;gBACJ,MAAM,IAAI,sBAAc,CACpB,+FAA+F,CAClG,CAAC;aACL;YAED,OAAO,CAAC,GAAG,CAAC,gBAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;YAEpE,OAAO,CAAC,GAAG,CACP,gBAAM,CAAC,KAAK,CACR,gBAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAC3D,CACJ,CAAC;QACN,CAAC;KAAA;CACJ;AAjFD,8CAiFC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/next-auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAmC;AACnC,2CAA6B;AAC7B,oDAA4B;AAE5B,MAAqB,iBAAiB;IAC5B,QAAQ,CAAC,OAAgB;;YAC3B,MAAM,OAAO,GAAG,IAAI,kBAAO,EAAE,CAAC;YAE9B,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEzC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,gBAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;QACjE,CAAC;KAAA;IAED,aAAa,CAAC,OAAgB,EAAE,OAAgB;QAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EACxD,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACtB,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC;YACb,sCAAsC;YACtC,8BAA8B;SACjC,CAAC,CAAC;QAEH,EAAE,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,eAAe,CAAC,OAAgB,EAAE,OAAgB;QAC9C,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA2Df,CAAC;QAEF,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAC/B,IAAI,CAAC,IAAI,CACL,OAAO,CAAC,gBAAgB,EACxB,+BAA+B,CAClC,EACD,OAAO,EACP,EAAE,SAAS,EAAE,IAAI,EAAE,CACtB,CAAC;QAEF,EAAE,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,iBAAiB,CAAC,OAAgB,EAAE,OAAgB;QAChD,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA8Ef,CAAC;QAEF,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,EAC5D,OAAO,EACP,EAAE,SAAS,EAAE,IAAI,EAAE,CACtB,CAAC;QAEF,EAAE,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;CACJ;AA/LD,oCA+LC"}
@@ -1,287 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const ast_1 = require("../../language-server/generated/ast");
7
- const constants_1 = require("../constants");
8
- const types_1 = require("../types");
9
- const plain_expression_builder_1 = __importDefault(require("./plain-expression-builder"));
10
- class ExpressionWriter {
11
- constructor(writer) {
12
- this.writer = writer;
13
- this.plainExprBuilder = new plain_expression_builder_1.default();
14
- }
15
- write(expr) {
16
- const _write = () => {
17
- switch (expr.$type) {
18
- case ast_1.LiteralExpr:
19
- this.writeLiteral(expr);
20
- break;
21
- case ast_1.UnaryExpr:
22
- this.writeUnary(expr);
23
- break;
24
- case ast_1.BinaryExpr:
25
- this.writeBinary(expr);
26
- break;
27
- case ast_1.ReferenceExpr:
28
- this.writeReference(expr);
29
- break;
30
- case ast_1.MemberAccessExpr:
31
- this.writeMemberAccess(expr);
32
- break;
33
- default:
34
- throw new Error(`Not implemented: ${expr.$type}`);
35
- }
36
- };
37
- this.block(_write);
38
- }
39
- writeReference(expr) {
40
- if ((0, ast_1.isEnumField)(expr.target.ref)) {
41
- throw new Error('We should never get here');
42
- }
43
- else {
44
- this.writer.write(`${expr.target.ref.name}: true`);
45
- }
46
- }
47
- writeMemberAccess(expr) {
48
- this.writeFieldCondition(expr.operand, () => {
49
- this.block(() => {
50
- var _a;
51
- this.writer.write(`${(_a = expr.member.ref) === null || _a === void 0 ? void 0 : _a.name}: true`);
52
- });
53
- }, 'is');
54
- }
55
- writeExprList(exprs) {
56
- this.writer.writeLine('[');
57
- for (let i = 0; i < exprs.length; i++) {
58
- this.write(exprs[i]);
59
- if (i !== exprs.length - 1) {
60
- this.writer.writeLine(',');
61
- }
62
- }
63
- this.writer.writeLine(']');
64
- }
65
- writeBinary(expr) {
66
- switch (expr.operator) {
67
- case '&&':
68
- case '||':
69
- this.writeLogical(expr, expr.operator);
70
- break;
71
- case '==':
72
- case '!=':
73
- case '>':
74
- case '>=':
75
- case '<':
76
- case '<=':
77
- this.writeComparison(expr, expr.operator);
78
- break;
79
- case '?':
80
- case '!':
81
- case '^':
82
- this.writeCollectionPredicate(expr, expr.operator);
83
- break;
84
- }
85
- }
86
- writeCollectionPredicate(expr, operator) {
87
- this.writeFieldCondition(expr.left, () => {
88
- this.write(expr.right);
89
- }, operator === '?' ? 'some' : operator === '!' ? 'every' : 'none');
90
- }
91
- isFieldAccess(expr) {
92
- if ((0, ast_1.isThisExpr)(expr)) {
93
- return true;
94
- }
95
- if ((0, ast_1.isMemberAccessExpr)(expr)) {
96
- return this.isFieldAccess(expr.operand);
97
- }
98
- if ((0, ast_1.isReferenceExpr)(expr) && (0, ast_1.isDataModelField)(expr.target.ref)) {
99
- return true;
100
- }
101
- return false;
102
- }
103
- guard(write) {
104
- this.writer.write(`${constants_1.GUARD_FIELD_NAME}: `);
105
- write();
106
- }
107
- plain(expr) {
108
- this.writer.write(this.plainExprBuilder.build(expr));
109
- }
110
- writeComparison(expr, operator) {
111
- const leftIsFieldAccess = this.isFieldAccess(expr.left);
112
- const rightIsFieldAccess = this.isFieldAccess(expr.right);
113
- if (leftIsFieldAccess && rightIsFieldAccess) {
114
- throw new types_1.GeneratorError(`Comparison between fields are not supported yet`);
115
- }
116
- if (!leftIsFieldAccess && !rightIsFieldAccess) {
117
- // compile down to a plain expression
118
- this.guard(() => {
119
- this.plain(expr.left);
120
- this.writer.write(' ' + operator + ' ');
121
- this.plain(expr.right);
122
- });
123
- return;
124
- }
125
- let fieldAccess;
126
- let operand;
127
- if (leftIsFieldAccess) {
128
- fieldAccess = expr.left;
129
- operand = expr.right;
130
- }
131
- else {
132
- fieldAccess = expr.right;
133
- operand = expr.left;
134
- operator = this.negateOperator(operator);
135
- }
136
- this.writeFieldCondition(fieldAccess, () => {
137
- this.block(() => {
138
- if (this.isModelTyped(fieldAccess)) {
139
- // comparing with an object, conver to "id" comparison instead
140
- this.writer.write('id: ');
141
- this.block(() => {
142
- this.writeOperator(operator, () => {
143
- this.plain(operand);
144
- this.writer.write('?.id');
145
- });
146
- });
147
- }
148
- else {
149
- this.writeOperator(operator, () => {
150
- this.plain(operand);
151
- });
152
- }
153
- },
154
- // "this" expression is compiled away (to .id access), so we should
155
- // avoid generating a new layer
156
- !(0, ast_1.isThisExpr)(fieldAccess));
157
- }, 'is');
158
- }
159
- writeOperator(operator, writeOperand) {
160
- if (operator === '!=') {
161
- // wrap a 'not'
162
- this.writer.write('not: ');
163
- this.block(() => {
164
- this.writeOperator('==', writeOperand);
165
- });
166
- }
167
- else {
168
- this.writer.write(`${this.mapOperator(operator)}: `);
169
- writeOperand();
170
- }
171
- }
172
- writeFieldCondition(fieldAccess, writeCondition, relationOp) {
173
- var _a, _b;
174
- let selector;
175
- let operand;
176
- if ((0, ast_1.isThisExpr)(fieldAccess)) {
177
- // pass on
178
- writeCondition();
179
- return;
180
- }
181
- else if ((0, ast_1.isReferenceExpr)(fieldAccess)) {
182
- selector = (_a = fieldAccess.target.ref) === null || _a === void 0 ? void 0 : _a.name;
183
- }
184
- else if ((0, ast_1.isMemberAccessExpr)(fieldAccess)) {
185
- selector = (_b = fieldAccess.member.ref) === null || _b === void 0 ? void 0 : _b.name;
186
- operand = fieldAccess.operand;
187
- }
188
- else {
189
- throw new types_1.GeneratorError(`Unsupported expression type: ${fieldAccess.$type}`);
190
- }
191
- if (operand) {
192
- // member access expression
193
- this.writeFieldCondition(operand, () => {
194
- this.block(() => {
195
- this.writer.write(selector + ': ');
196
- if (this.isModelTyped(fieldAccess)) {
197
- // expression is resolved to a model, generate relation query
198
- this.block(() => {
199
- this.writer.write(`${relationOp}: `);
200
- writeCondition();
201
- });
202
- }
203
- else {
204
- // generate plain query
205
- writeCondition();
206
- }
207
- },
208
- // if operand is "this", it doesn't really generate a new layer of query,
209
- // so we should avoid generating a new block
210
- !(0, ast_1.isThisExpr)(operand));
211
- }, 'is');
212
- }
213
- else if (this.isModelTyped(fieldAccess)) {
214
- // reference resolved to a model, generate relation query
215
- this.writer.write(selector + ': ');
216
- this.block(() => {
217
- this.writer.write(`${relationOp}: `);
218
- writeCondition();
219
- });
220
- }
221
- else {
222
- // generate a plain query
223
- this.writer.write(selector + ': ');
224
- writeCondition();
225
- }
226
- }
227
- block(write, condition = true) {
228
- if (condition) {
229
- this.writer.block(write);
230
- }
231
- else {
232
- write();
233
- }
234
- }
235
- isModelTyped(expr) {
236
- var _a;
237
- return (0, ast_1.isDataModel)((_a = expr.$resolvedType) === null || _a === void 0 ? void 0 : _a.decl);
238
- }
239
- mapOperator(operator) {
240
- switch (operator) {
241
- case '==':
242
- return 'equals';
243
- case '!=':
244
- throw new Error('Operation != should have been compiled away');
245
- case '>':
246
- return 'gt';
247
- case '>=':
248
- return 'ge';
249
- case '<':
250
- return 'lt';
251
- case '<=':
252
- return 'le';
253
- }
254
- }
255
- negateOperator(operator) {
256
- switch (operator) {
257
- case '>':
258
- return '<=';
259
- case '<':
260
- return '>=';
261
- case '>=':
262
- return '<';
263
- case '<=':
264
- return '>';
265
- default:
266
- return operator;
267
- }
268
- }
269
- writeLogical(expr, operator) {
270
- this.writer.writeLine(`${operator === '&&' ? 'AND' : 'OR'}: `);
271
- this.writeExprList([expr.left, expr.right]);
272
- }
273
- writeUnary(expr) {
274
- if (expr.operator !== '!') {
275
- throw new types_1.GeneratorError(`Unary operator "${expr.operator}" is not supported`);
276
- }
277
- this.writer.writeLine('NOT: ');
278
- this.write(expr.operand);
279
- }
280
- writeLiteral(expr) {
281
- this.guard(() => {
282
- this.plain(expr);
283
- });
284
- }
285
- }
286
- exports.default = ExpressionWriter;
287
- //# sourceMappingURL=expression-writer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"expression-writer.js","sourceRoot":"","sources":["../../../src/generator/prisma/expression-writer.ts"],"names":[],"mappings":"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"}