graphile-build-pg 4.13.0 → 4.14.1

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 (106) hide show
  1. package/README.md +4 -13
  2. package/node8plus/GraphQLJSON.js +0 -11
  3. package/node8plus/GraphQLJSON.js.map +1 -1
  4. package/node8plus/PgLiveProvider.js +4 -11
  5. package/node8plus/PgLiveProvider.js.map +1 -1
  6. package/node8plus/QueryBuilder.js +42 -176
  7. package/node8plus/QueryBuilder.js.map +1 -1
  8. package/node8plus/index.js +8 -47
  9. package/node8plus/index.js.map +1 -1
  10. package/node8plus/inflections.js +9 -61
  11. package/node8plus/inflections.js.map +1 -1
  12. package/node8plus/omit.js +7 -22
  13. package/node8plus/omit.js.map +1 -1
  14. package/node8plus/parseIdentifier.js +0 -1
  15. package/node8plus/parseIdentifier.js.map +1 -1
  16. package/node8plus/pgPrepareAndRun.js +2 -14
  17. package/node8plus/pgPrepareAndRun.js.map +1 -1
  18. package/node8plus/plugins/PageInfoStartEndCursor.js +0 -4
  19. package/node8plus/plugins/PageInfoStartEndCursor.js.map +1 -1
  20. package/node8plus/plugins/PgAllRows.js +0 -29
  21. package/node8plus/plugins/PgAllRows.js.map +1 -1
  22. package/node8plus/plugins/PgBackwardRelationPlugin.js +2 -41
  23. package/node8plus/plugins/PgBackwardRelationPlugin.js.map +1 -1
  24. package/node8plus/plugins/PgBasicsPlugin.js +20 -147
  25. package/node8plus/plugins/PgBasicsPlugin.js.map +1 -1
  26. package/node8plus/plugins/PgColumnDeprecationPlugin.js +2 -5
  27. package/node8plus/plugins/PgColumnDeprecationPlugin.js.map +1 -1
  28. package/node8plus/plugins/PgColumnsPlugin.js +4 -17
  29. package/node8plus/plugins/PgColumnsPlugin.js.map +1 -1
  30. package/node8plus/plugins/PgComputedColumnsPlugin.js +4 -19
  31. package/node8plus/plugins/PgComputedColumnsPlugin.js.map +1 -1
  32. package/node8plus/plugins/PgConditionComputedColumnPlugin.js +12 -23
  33. package/node8plus/plugins/PgConditionComputedColumnPlugin.js.map +1 -1
  34. package/node8plus/plugins/PgConnectionArgCondition.js +1 -9
  35. package/node8plus/plugins/PgConnectionArgCondition.js.map +1 -1
  36. package/node8plus/plugins/PgConnectionArgFirstLastBeforeAfter.js +0 -12
  37. package/node8plus/plugins/PgConnectionArgFirstLastBeforeAfter.js.map +1 -1
  38. package/node8plus/plugins/PgConnectionArgOrderBy.js +2 -19
  39. package/node8plus/plugins/PgConnectionArgOrderBy.js.map +1 -1
  40. package/node8plus/plugins/PgConnectionArgOrderByDefaultValue.js +0 -6
  41. package/node8plus/plugins/PgConnectionArgOrderByDefaultValue.js.map +1 -1
  42. package/node8plus/plugins/PgConnectionTotalCount.js +0 -8
  43. package/node8plus/plugins/PgConnectionTotalCount.js.map +1 -1
  44. package/node8plus/plugins/PgForwardRelationPlugin.js +2 -25
  45. package/node8plus/plugins/PgForwardRelationPlugin.js.map +1 -1
  46. package/node8plus/plugins/PgIntrospectionPlugin.js +91 -180
  47. package/node8plus/plugins/PgIntrospectionPlugin.js.flow +30 -2
  48. package/node8plus/plugins/PgIntrospectionPlugin.js.map +1 -1
  49. package/node8plus/plugins/PgJWTPlugin.js +2 -18
  50. package/node8plus/plugins/PgJWTPlugin.js.map +1 -1
  51. package/node8plus/plugins/PgMutationCreatePlugin.js +0 -18
  52. package/node8plus/plugins/PgMutationCreatePlugin.js.map +1 -1
  53. package/node8plus/plugins/PgMutationPayloadEdgePlugin.js +4 -25
  54. package/node8plus/plugins/PgMutationPayloadEdgePlugin.js.map +1 -1
  55. package/node8plus/plugins/PgMutationProceduresPlugin.js +0 -6
  56. package/node8plus/plugins/PgMutationProceduresPlugin.js.map +1 -1
  57. package/node8plus/plugins/PgMutationUpdateDeletePlugin.js +14 -49
  58. package/node8plus/plugins/PgMutationUpdateDeletePlugin.js.flow +5 -2
  59. package/node8plus/plugins/PgMutationUpdateDeletePlugin.js.map +1 -1
  60. package/node8plus/plugins/PgNodeAliasPostGraphile.js +0 -6
  61. package/node8plus/plugins/PgNodeAliasPostGraphile.js.map +1 -1
  62. package/node8plus/plugins/PgOrderAllColumnsPlugin.js +0 -4
  63. package/node8plus/plugins/PgOrderAllColumnsPlugin.js.map +1 -1
  64. package/node8plus/plugins/PgOrderByPrimaryKeyPlugin.js +0 -6
  65. package/node8plus/plugins/PgOrderByPrimaryKeyPlugin.js.map +1 -1
  66. package/node8plus/plugins/PgOrderComputedColumnsPlugin.js +10 -14
  67. package/node8plus/plugins/PgOrderComputedColumnsPlugin.js.map +1 -1
  68. package/node8plus/plugins/PgQueryProceduresPlugin.js +4 -16
  69. package/node8plus/plugins/PgQueryProceduresPlugin.js.map +1 -1
  70. package/node8plus/plugins/PgRecordFunctionConnectionPlugin.js +3 -20
  71. package/node8plus/plugins/PgRecordFunctionConnectionPlugin.js.map +1 -1
  72. package/node8plus/plugins/PgRecordReturnTypesPlugin.js +11 -16
  73. package/node8plus/plugins/PgRecordReturnTypesPlugin.js.map +1 -1
  74. package/node8plus/plugins/PgRowByUniqueConstraint.js +4 -25
  75. package/node8plus/plugins/PgRowByUniqueConstraint.js.map +1 -1
  76. package/node8plus/plugins/PgRowNode.js +0 -32
  77. package/node8plus/plugins/PgRowNode.js.map +1 -1
  78. package/node8plus/plugins/PgScalarFunctionConnectionPlugin.js +3 -17
  79. package/node8plus/plugins/PgScalarFunctionConnectionPlugin.js.map +1 -1
  80. package/node8plus/plugins/PgTablesPlugin.js +7 -59
  81. package/node8plus/plugins/PgTablesPlugin.js.map +1 -1
  82. package/node8plus/plugins/PgTypesPlugin.js +140 -240
  83. package/node8plus/plugins/PgTypesPlugin.js.flow +76 -23
  84. package/node8plus/plugins/PgTypesPlugin.js.map +1 -1
  85. package/node8plus/plugins/addStartEndCursor.js +2 -5
  86. package/node8plus/plugins/addStartEndCursor.js.map +1 -1
  87. package/node8plus/plugins/debugSql.js +1 -16
  88. package/node8plus/plugins/debugSql.js.map +1 -1
  89. package/node8plus/plugins/introspectionQuery.js +3 -4
  90. package/node8plus/plugins/introspectionQuery.js.flow +11 -3
  91. package/node8plus/plugins/introspectionQuery.js.map +1 -1
  92. package/node8plus/plugins/makeProcField.js +40 -90
  93. package/node8plus/plugins/makeProcField.js.map +1 -1
  94. package/node8plus/plugins/pgField.js +2 -7
  95. package/node8plus/plugins/pgField.js.map +1 -1
  96. package/node8plus/plugins/viaTemporaryTable.js +6 -12
  97. package/node8plus/plugins/viaTemporaryTable.js.map +1 -1
  98. package/node8plus/postgresInterval.js +4 -4
  99. package/node8plus/postgresInterval.js.map +1 -1
  100. package/node8plus/queryFromResolveDataFactory.js +33 -77
  101. package/node8plus/queryFromResolveDataFactory.js.map +1 -1
  102. package/node8plus/utils.js +8 -9
  103. package/node8plus/utils.js.map +1 -1
  104. package/node8plus/withPgClient.js +4 -26
  105. package/node8plus/withPgClient.js.map +1 -1
  106. package/package.json +4 -4
@@ -4,37 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.newInflector = exports.defaultUtils = exports.defaultInflection = void 0;
7
-
8
7
  var _graphileBuild = require("graphile-build");
9
-
10
8
  var _PgBasicsPlugin = require("./plugins/PgBasicsPlugin");
9
+ /* THIS ENTIRE FILE IS DEPRECATED. DO NOT USE THIS. DO NOT EDIT THIS. */const outputMessages = [];
11
10
 
12
- /* THIS ENTIRE FILE IS DEPRECATED. DO NOT USE THIS. DO NOT EDIT THIS. */
13
- const outputMessages = []; // eslint-disable-next-line flowtype/no-weak-types
14
-
11
+ // eslint-disable-next-line flowtype/no-weak-types
15
12
  function deprecate(fn, message) {
16
13
  if (typeof fn !== "function") {
17
14
  return fn;
18
15
  }
19
-
20
16
  return function (...args) {
21
17
  if (outputMessages.indexOf(message) === -1) {
22
- outputMessages.push(message); // eslint-disable-next-line no-console
23
-
18
+ outputMessages.push(message);
19
+ // eslint-disable-next-line no-console
24
20
  console.warn(new Error(message));
25
21
  }
26
-
27
22
  return fn.apply(this, args);
28
23
  };
29
24
  }
30
-
31
25
  function deprecateEverything(obj) {
32
26
  return Object.keys(obj).reduce((memo, key) => {
33
27
  memo[key] = deprecate(obj[key], `Something (probably a plugin) called the old inflection system (inflector: '${key}'). This system has been deprecated since 4.0.0-beta.6 (4th May 2018) and is not used internally so using it may cause inconsistencies, instead please use the plugin-capable inflection system https://www.graphile.org/postgraphile/inflection/`);
34
28
  return memo;
35
29
  }, {});
36
30
  }
37
-
38
31
  const defaultUtils = {
39
32
  constantCase: _graphileBuild.constantCase,
40
33
  camelCase: _graphileBuild.camelCase,
@@ -43,7 +36,6 @@ const defaultUtils = {
43
36
  singularize: _graphileBuild.singularize
44
37
  };
45
38
  exports.defaultUtils = defaultUtils;
46
-
47
39
  const newInflector = (overrides = undefined, {
48
40
  constantCase,
49
41
  camelCase,
@@ -54,43 +46,37 @@ const newInflector = (overrides = undefined, {
54
46
  function singularizeTable(tableName) {
55
47
  return singularize(tableName).replace(/.(?:(?:[_-]i|I)nput|(?:[_-]p|P)atch)$/, "$&_record");
56
48
  }
57
-
58
49
  return deprecateEverything((0, _PgBasicsPlugin.preventEmptyResult)({
59
50
  pluralize,
60
-
61
51
  argument(name, index) {
62
52
  return camelCase(name || `arg${index}`);
63
53
  },
64
-
65
54
  orderByType(typeName) {
66
55
  return upperCamelCase(`${pluralize(typeName)}-order-by`);
67
56
  },
68
-
69
57
  orderByEnum(name, ascending, _table, _schema) {
70
58
  return constantCase(`${name}_${ascending ? "asc" : "desc"}`);
71
59
  },
72
-
73
60
  domainType(name) {
74
61
  return upperCamelCase(name);
75
62
  },
76
-
77
63
  enumName(inValue) {
78
64
  let value = inValue;
79
-
80
65
  if (value === "") {
81
66
  return "_EMPTY_";
82
- } // Some enums use asterisks to signify wildcards - this might be for
67
+ }
68
+
69
+ // Some enums use asterisks to signify wildcards - this might be for
83
70
  // the whole item, or prefixes/suffixes, or even in the middle. This
84
71
  // is provided on a best efforts basis, if it doesn't suit your
85
72
  // purposes then please pass a custom inflector as mentioned below.
73
+ value = value.replace(/\*/g, "_ASTERISK_").replace(/^(_?)_+ASTERISK/, "$1ASTERISK").replace(/ASTERISK_(_?)_*$/, "ASTERISK$1");
86
74
 
87
-
88
- value = value.replace(/\*/g, "_ASTERISK_").replace(/^(_?)_+ASTERISK/, "$1ASTERISK").replace(/ASTERISK_(_?)_*$/, "ASTERISK$1"); // This is a best efforts replacement for common symbols that you
75
+ // This is a best efforts replacement for common symbols that you
89
76
  // might find in enums. Generally we only support enums that are
90
77
  // alphanumeric, if these replacements don't work for you, you should
91
78
  // pass a custom inflector that replaces this `enumName` method
92
79
  // with one of your own chosing.
93
-
94
80
  value = {
95
81
  // SQL comparison operators
96
82
  ">": "GREATER_THAN",
@@ -147,155 +133,117 @@ const newInflector = (overrides = undefined, {
147
133
  }[value] || value;
148
134
  return value;
149
135
  },
150
-
151
136
  enumType(name) {
152
137
  return upperCamelCase(name);
153
138
  },
154
-
155
139
  conditionType(typeName) {
156
140
  return upperCamelCase(`${typeName}-condition`);
157
141
  },
158
-
159
142
  inputType(typeName) {
160
143
  return upperCamelCase(`${typeName}-input`);
161
144
  },
162
-
163
145
  rangeBoundType(typeName) {
164
146
  return upperCamelCase(`${typeName}-range-bound`);
165
147
  },
166
-
167
148
  rangeType(typeName) {
168
149
  return upperCamelCase(`${typeName}-range`);
169
150
  },
170
-
171
151
  patchType(typeName) {
172
152
  return upperCamelCase(`${typeName}-patch`);
173
153
  },
174
-
175
154
  patchField(itemName) {
176
155
  return camelCase(`${itemName}-patch`);
177
156
  },
178
-
179
157
  tableName(name, _schema) {
180
158
  return camelCase(singularizeTable(name));
181
159
  },
182
-
183
160
  tableNode(name, _schema) {
184
161
  return camelCase(singularizeTable(name));
185
162
  },
186
-
187
163
  allRows(name, schema) {
188
164
  return camelCase(`all-${this.pluralize(this.tableName(name, schema))}`);
189
165
  },
190
-
191
166
  functionName(name, _schema) {
192
167
  return camelCase(name);
193
168
  },
194
-
195
169
  functionPayloadType(name, _schema) {
196
170
  return upperCamelCase(`${name}-payload`);
197
171
  },
198
-
199
172
  functionInputType(name, _schema) {
200
173
  return upperCamelCase(`${name}-input`);
201
174
  },
202
-
203
175
  tableType(name, schema) {
204
176
  return upperCamelCase(this.tableName(name, schema));
205
177
  },
206
-
207
178
  column(name, _table, _schema) {
208
179
  return camelCase(name);
209
180
  },
210
-
211
181
  singleRelationByKeys(detailedKeys, table, schema) {
212
182
  return camelCase(`${this.tableName(table, schema)}-by-${detailedKeys.map(key => this.column(key.column, key.table, key.schema)).join("-and-")}`);
213
183
  },
214
-
215
184
  rowByUniqueKeys(detailedKeys, table, schema) {
216
185
  return camelCase(`${this.tableName(table, schema)}-by-${detailedKeys.map(key => this.column(key.column, key.table, key.schema)).join("-and-")}`);
217
186
  },
218
-
219
187
  updateByKeys(detailedKeys, table, schema) {
220
188
  return camelCase(`update-${this.tableName(table, schema)}-by-${detailedKeys.map(key => this.column(key.column, key.table, key.schema)).join("-and-")}`);
221
189
  },
222
-
223
190
  deleteByKeys(detailedKeys, table, schema) {
224
191
  return camelCase(`delete-${this.tableName(table, schema)}-by-${detailedKeys.map(key => this.column(key.column, key.table, key.schema)).join("-and-")}`);
225
192
  },
226
-
227
193
  updateNode(name, _schema) {
228
194
  return camelCase(`update-${singularizeTable(name)}`);
229
195
  },
230
-
231
196
  deleteNode(name, _schema) {
232
197
  return camelCase(`delete-${singularizeTable(name)}`);
233
198
  },
234
-
235
199
  updateByKeysInputType(detailedKeys, name, _schema) {
236
200
  return upperCamelCase(`update-${singularizeTable(name)}-by-${detailedKeys.map(key => this.column(key.column, key.table, key.schema)).join("-and-")}-input`);
237
201
  },
238
-
239
202
  deleteByKeysInputType(detailedKeys, name, _schema) {
240
203
  return upperCamelCase(`delete-${singularizeTable(name)}-by-${detailedKeys.map(key => this.column(key.column, key.table, key.schema)).join("-and-")}-input`);
241
204
  },
242
-
243
205
  updateNodeInputType(name, _schema) {
244
206
  return upperCamelCase(`update-${singularizeTable(name)}-input`);
245
207
  },
246
-
247
208
  deleteNodeInputType(name, _schema) {
248
209
  return upperCamelCase(`delete-${singularizeTable(name)}-input`);
249
210
  },
250
-
251
211
  manyRelationByKeys(detailedKeys, table, schema, _foreignTable, _foreignSchema) {
252
212
  return camelCase(`${this.pluralize(this.tableName(table, schema))}-by-${detailedKeys.map(key => this.column(key.column, key.table, key.schema)).join("-and-")}`);
253
213
  },
254
-
255
214
  edge(typeName) {
256
215
  return upperCamelCase(`${pluralize(typeName)}-edge`);
257
216
  },
258
-
259
217
  edgeField(name, _schema) {
260
218
  return camelCase(`${singularizeTable(name)}-edge`);
261
219
  },
262
-
263
220
  connection(typeName) {
264
221
  return upperCamelCase(`${this.pluralize(typeName)}-connection`);
265
222
  },
266
-
267
223
  scalarFunctionConnection(procName, _procSchema) {
268
224
  return upperCamelCase(`${procName}-connection`);
269
225
  },
270
-
271
226
  scalarFunctionEdge(procName, _procSchema) {
272
227
  return upperCamelCase(`${procName}-edge`);
273
228
  },
274
-
275
229
  createField(name, _schema) {
276
230
  return camelCase(`create-${singularizeTable(name)}`);
277
231
  },
278
-
279
232
  createInputType(name, _schema) {
280
233
  return upperCamelCase(`create-${singularizeTable(name)}-input`);
281
234
  },
282
-
283
235
  createPayloadType(name, _schema) {
284
236
  return upperCamelCase(`create-${singularizeTable(name)}-payload`);
285
237
  },
286
-
287
238
  updatePayloadType(name, _schema) {
288
239
  return upperCamelCase(`update-${singularizeTable(name)}-payload`);
289
240
  },
290
-
291
241
  deletePayloadType(name, _schema) {
292
242
  return upperCamelCase(`delete-${singularizeTable(name)}-payload`);
293
243
  },
294
-
295
244
  ...overrides
296
245
  }));
297
246
  };
298
-
299
247
  exports.newInflector = newInflector;
300
248
  const defaultInflection = newInflector();
301
249
  exports.defaultInflection = defaultInflection;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/inflections.js"],"names":["outputMessages","deprecate","fn","message","args","indexOf","push","console","warn","Error","apply","deprecateEverything","obj","Object","keys","reduce","memo","key","defaultUtils","constantCase","camelCase","upperCamelCase","pluralize","singularize","newInflector","overrides","undefined","singularizeTable","tableName","replace","argument","name","index","orderByType","typeName","orderByEnum","ascending","_table","_schema","domainType","enumName","inValue","value","_","$","enumType","conditionType","inputType","rangeBoundType","rangeType","patchType","patchField","itemName","tableNode","allRows","schema","functionName","functionPayloadType","functionInputType","tableType","column","singleRelationByKeys","detailedKeys","table","map","join","rowByUniqueKeys","updateByKeys","deleteByKeys","updateNode","deleteNode","updateByKeysInputType","deleteByKeysInputType","updateNodeInputType","deleteNodeInputType","manyRelationByKeys","_foreignTable","_foreignSchema","edge","edgeField","connection","scalarFunctionConnection","procName","_procSchema","scalarFunctionEdge","createField","createInputType","createPayloadType","updatePayloadType","deletePayloadType","defaultInflection"],"mappings":"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","sourcesContent":["/* THIS ENTIRE FILE IS DEPRECATED. DO NOT USE THIS. DO NOT EDIT THIS. */\n// @flow\nimport {\n upperCamelCase,\n camelCase,\n constantCase,\n pluralize,\n singularize,\n} from \"graphile-build\";\n\nimport { preventEmptyResult } from \"./plugins/PgBasicsPlugin\";\n\nconst outputMessages = [];\n\n// eslint-disable-next-line flowtype/no-weak-types\nfunction deprecate(fn: (...input: Array<any>) => string, message: string) {\n if (typeof fn !== \"function\") {\n return fn;\n }\n return function (...args) {\n if (outputMessages.indexOf(message) === -1) {\n outputMessages.push(message);\n // eslint-disable-next-line no-console\n console.warn(new Error(message));\n }\n return fn.apply(this, args);\n };\n}\n\nfunction deprecateEverything(obj: {\n // eslint-disable-next-line flowtype/no-weak-types\n [string]: (...input: Array<any>) => string,\n}) {\n return Object.keys(obj).reduce((memo, key) => {\n memo[key] = deprecate(\n obj[key],\n `Something (probably a plugin) called the old inflection system (inflector: '${key}'). This system has been deprecated since 4.0.0-beta.6 (4th May 2018) and is not used internally so using it may cause inconsistencies, instead please use the plugin-capable inflection system https://www.graphile.org/postgraphile/inflection/`\n );\n return memo;\n }, {});\n}\n\ntype Keys = Array<{\n column: string,\n table: string,\n schema: ?string,\n}>;\n\ntype InflectorUtils = {|\n constantCase: string => string,\n camelCase: string => string,\n upperCamelCase: string => string,\n pluralize: string => string,\n singularize: string => string,\n|};\n\nexport const defaultUtils: InflectorUtils = {\n constantCase,\n camelCase,\n upperCamelCase,\n pluralize,\n singularize,\n};\n\nexport type Inflector = {\n // TODO: tighten this up!\n // eslint-disable-next-line flowtype/no-weak-types\n [string]: (...input: Array<any>) => string,\n};\n\nexport const newInflector = (\n overrides: ?{ [string]: () => string } = undefined,\n {\n constantCase,\n camelCase,\n upperCamelCase,\n pluralize,\n singularize,\n }: InflectorUtils = defaultUtils\n): Inflector => {\n function singularizeTable(tableName: string): string {\n return singularize(tableName).replace(\n /.(?:(?:[_-]i|I)nput|(?:[_-]p|P)atch)$/,\n \"$&_record\"\n );\n }\n\n return deprecateEverything(\n preventEmptyResult({\n pluralize,\n argument(name: ?string, index: number) {\n return camelCase(name || `arg${index}`);\n },\n orderByType(typeName: string) {\n return upperCamelCase(`${pluralize(typeName)}-order-by`);\n },\n orderByEnum(\n name: string,\n ascending: boolean,\n _table: string,\n _schema: ?string\n ) {\n return constantCase(`${name}_${ascending ? \"asc\" : \"desc\"}`);\n },\n domainType(name: string) {\n return upperCamelCase(name);\n },\n enumName(inValue: string) {\n let value = inValue;\n\n if (value === \"\") {\n return \"_EMPTY_\";\n }\n\n // Some enums use asterisks to signify wildcards - this might be for\n // the whole item, or prefixes/suffixes, or even in the middle. This\n // is provided on a best efforts basis, if it doesn't suit your\n // purposes then please pass a custom inflector as mentioned below.\n value = value\n .replace(/\\*/g, \"_ASTERISK_\")\n .replace(/^(_?)_+ASTERISK/, \"$1ASTERISK\")\n .replace(/ASTERISK_(_?)_*$/, \"ASTERISK$1\");\n\n // This is a best efforts replacement for common symbols that you\n // might find in enums. Generally we only support enums that are\n // alphanumeric, if these replacements don't work for you, you should\n // pass a custom inflector that replaces this `enumName` method\n // with one of your own chosing.\n value =\n {\n // SQL comparison operators\n \">\": \"GREATER_THAN\",\n \">=\": \"GREATER_THAN_OR_EQUAL\",\n \"=\": \"EQUAL\",\n \"!=\": \"NOT_EQUAL\",\n \"<>\": \"DIFFERENT\",\n \"<=\": \"LESS_THAN_OR_EQUAL\",\n \"<\": \"LESS_THAN\",\n\n // PostgreSQL LIKE shortcuts\n \"~~\": \"LIKE\",\n \"~~*\": \"ILIKE\",\n \"!~~\": \"NOT_LIKE\",\n \"!~~*\": \"NOT_ILIKE\",\n\n // '~' doesn't necessarily represent regexps, but the three\n // operators following it likely do, so we'll use the word TILDE\n // in all for consistency.\n \"~\": \"TILDE\",\n \"~*\": \"TILDE_ASTERISK\",\n \"!~\": \"NOT_TILDE\",\n \"!~*\": \"NOT_TILDE_ASTERISK\",\n\n // A number of other symbols where we're not sure of their\n // meaning. We give them common generic names so that they're\n // suitable for multiple purposes, e.g. favouring 'PLUS' over\n // 'ADDITION' and 'DOT' over 'FULL_STOP'\n \"%\": \"PERCENT\",\n \"+\": \"PLUS\",\n \"-\": \"MINUS\",\n \"/\": \"SLASH\",\n \"\\\\\": \"BACKSLASH\",\n _: \"UNDERSCORE\",\n \"#\": \"POUND\",\n \"£\": \"STERLING\",\n $: \"DOLLAR\",\n \"&\": \"AMPERSAND\",\n \"@\": \"AT\",\n \"'\": \"APOSTROPHE\",\n '\"': \"QUOTE\",\n \"`\": \"BACKTICK\",\n \":\": \"COLON\",\n \";\": \"SEMICOLON\",\n \"!\": \"EXCLAMATION_POINT\",\n \"?\": \"QUESTION_MARK\",\n \",\": \"COMMA\",\n \".\": \"DOT\",\n \"^\": \"CARET\",\n \"|\": \"BAR\",\n \"[\": \"OPEN_BRACKET\",\n \"]\": \"CLOSE_BRACKET\",\n \"(\": \"OPEN_PARENTHESIS\",\n \")\": \"CLOSE_PARENTHESIS\",\n \"{\": \"OPEN_BRACE\",\n \"}\": \"CLOSE_BRACE\",\n }[value] || value;\n return value;\n },\n enumType(name: string) {\n return upperCamelCase(name);\n },\n conditionType(typeName: string) {\n return upperCamelCase(`${typeName}-condition`);\n },\n inputType(typeName: string) {\n return upperCamelCase(`${typeName}-input`);\n },\n rangeBoundType(typeName: string) {\n return upperCamelCase(`${typeName}-range-bound`);\n },\n rangeType(typeName: string) {\n return upperCamelCase(`${typeName}-range`);\n },\n patchType(typeName: string) {\n return upperCamelCase(`${typeName}-patch`);\n },\n patchField(itemName: string) {\n return camelCase(`${itemName}-patch`);\n },\n tableName(name: string, _schema: ?string) {\n return camelCase(singularizeTable(name));\n },\n tableNode(name: string, _schema: ?string) {\n return camelCase(singularizeTable(name));\n },\n allRows(name: string, schema: ?string) {\n return camelCase(`all-${this.pluralize(this.tableName(name, schema))}`);\n },\n functionName(name: string, _schema: ?string) {\n return camelCase(name);\n },\n functionPayloadType(name: string, _schema: ?string) {\n return upperCamelCase(`${name}-payload`);\n },\n functionInputType(name: string, _schema: ?string) {\n return upperCamelCase(`${name}-input`);\n },\n tableType(name: string, schema: ?string) {\n return upperCamelCase(this.tableName(name, schema));\n },\n column(name: string, _table: string, _schema: ?string) {\n return camelCase(name);\n },\n singleRelationByKeys(detailedKeys: Keys, table: string, schema: ?string) {\n return camelCase(\n `${this.tableName(table, schema)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n rowByUniqueKeys(detailedKeys: Keys, table: string, schema: ?string) {\n return camelCase(\n `${this.tableName(table, schema)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n updateByKeys(detailedKeys: Keys, table: string, schema: ?string) {\n return camelCase(\n `update-${this.tableName(table, schema)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n deleteByKeys(detailedKeys: Keys, table: string, schema: ?string) {\n return camelCase(\n `delete-${this.tableName(table, schema)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n updateNode(name: string, _schema: ?string) {\n return camelCase(`update-${singularizeTable(name)}`);\n },\n deleteNode(name: string, _schema: ?string) {\n return camelCase(`delete-${singularizeTable(name)}`);\n },\n updateByKeysInputType(\n detailedKeys: Keys,\n name: string,\n _schema: ?string\n ) {\n return upperCamelCase(\n `update-${singularizeTable(name)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}-input`\n );\n },\n deleteByKeysInputType(\n detailedKeys: Keys,\n name: string,\n _schema: ?string\n ) {\n return upperCamelCase(\n `delete-${singularizeTable(name)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}-input`\n );\n },\n updateNodeInputType(name: string, _schema: ?string) {\n return upperCamelCase(`update-${singularizeTable(name)}-input`);\n },\n deleteNodeInputType(name: string, _schema: ?string) {\n return upperCamelCase(`delete-${singularizeTable(name)}-input`);\n },\n manyRelationByKeys(\n detailedKeys: Keys,\n table: string,\n schema: ?string,\n _foreignTable: string,\n _foreignSchema: ?string\n ) {\n return camelCase(\n `${this.pluralize(this.tableName(table, schema))}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n edge(typeName: string) {\n return upperCamelCase(`${pluralize(typeName)}-edge`);\n },\n edgeField(name: string, _schema: ?string) {\n return camelCase(`${singularizeTable(name)}-edge`);\n },\n connection(typeName: string) {\n return upperCamelCase(`${this.pluralize(typeName)}-connection`);\n },\n scalarFunctionConnection(procName: string, _procSchema: ?string) {\n return upperCamelCase(`${procName}-connection`);\n },\n scalarFunctionEdge(procName: string, _procSchema: ?string) {\n return upperCamelCase(`${procName}-edge`);\n },\n createField(name: string, _schema: ?string) {\n return camelCase(`create-${singularizeTable(name)}`);\n },\n createInputType(name: string, _schema: ?string) {\n return upperCamelCase(`create-${singularizeTable(name)}-input`);\n },\n createPayloadType(name: string, _schema: ?string) {\n return upperCamelCase(`create-${singularizeTable(name)}-payload`);\n },\n updatePayloadType(name: string, _schema: ?string) {\n return upperCamelCase(`update-${singularizeTable(name)}-payload`);\n },\n deletePayloadType(name: string, _schema: ?string) {\n return upperCamelCase(`delete-${singularizeTable(name)}-payload`);\n },\n ...overrides,\n })\n );\n};\n\nexport const defaultInflection = newInflector();\n"],"file":"inflections.js"}
1
+ {"version":3,"file":"inflections.js","names":["_graphileBuild","require","_PgBasicsPlugin","outputMessages","deprecate","fn","message","args","indexOf","push","console","warn","Error","apply","deprecateEverything","obj","Object","keys","reduce","memo","key","defaultUtils","constantCase","camelCase","upperCamelCase","pluralize","singularize","exports","newInflector","overrides","undefined","singularizeTable","tableName","replace","preventEmptyResult","argument","name","index","orderByType","typeName","orderByEnum","ascending","_table","_schema","domainType","enumName","inValue","value","_","$","enumType","conditionType","inputType","rangeBoundType","rangeType","patchType","patchField","itemName","tableNode","allRows","schema","functionName","functionPayloadType","functionInputType","tableType","column","singleRelationByKeys","detailedKeys","table","map","join","rowByUniqueKeys","updateByKeys","deleteByKeys","updateNode","deleteNode","updateByKeysInputType","deleteByKeysInputType","updateNodeInputType","deleteNodeInputType","manyRelationByKeys","_foreignTable","_foreignSchema","edge","edgeField","connection","scalarFunctionConnection","procName","_procSchema","scalarFunctionEdge","createField","createInputType","createPayloadType","updatePayloadType","deletePayloadType","defaultInflection"],"sources":["../src/inflections.js"],"sourcesContent":["/* THIS ENTIRE FILE IS DEPRECATED. DO NOT USE THIS. DO NOT EDIT THIS. */\n// @flow\nimport {\n upperCamelCase,\n camelCase,\n constantCase,\n pluralize,\n singularize,\n} from \"graphile-build\";\n\nimport { preventEmptyResult } from \"./plugins/PgBasicsPlugin\";\n\nconst outputMessages = [];\n\n// eslint-disable-next-line flowtype/no-weak-types\nfunction deprecate(fn: (...input: Array<any>) => string, message: string) {\n if (typeof fn !== \"function\") {\n return fn;\n }\n return function (...args) {\n if (outputMessages.indexOf(message) === -1) {\n outputMessages.push(message);\n // eslint-disable-next-line no-console\n console.warn(new Error(message));\n }\n return fn.apply(this, args);\n };\n}\n\nfunction deprecateEverything(obj: {\n // eslint-disable-next-line flowtype/no-weak-types\n [string]: (...input: Array<any>) => string,\n}) {\n return Object.keys(obj).reduce((memo, key) => {\n memo[key] = deprecate(\n obj[key],\n `Something (probably a plugin) called the old inflection system (inflector: '${key}'). This system has been deprecated since 4.0.0-beta.6 (4th May 2018) and is not used internally so using it may cause inconsistencies, instead please use the plugin-capable inflection system https://www.graphile.org/postgraphile/inflection/`\n );\n return memo;\n }, {});\n}\n\ntype Keys = Array<{\n column: string,\n table: string,\n schema: ?string,\n}>;\n\ntype InflectorUtils = {|\n constantCase: string => string,\n camelCase: string => string,\n upperCamelCase: string => string,\n pluralize: string => string,\n singularize: string => string,\n|};\n\nexport const defaultUtils: InflectorUtils = {\n constantCase,\n camelCase,\n upperCamelCase,\n pluralize,\n singularize,\n};\n\nexport type Inflector = {\n // TODO: tighten this up!\n // eslint-disable-next-line flowtype/no-weak-types\n [string]: (...input: Array<any>) => string,\n};\n\nexport const newInflector = (\n overrides: ?{ [string]: () => string } = undefined,\n {\n constantCase,\n camelCase,\n upperCamelCase,\n pluralize,\n singularize,\n }: InflectorUtils = defaultUtils\n): Inflector => {\n function singularizeTable(tableName: string): string {\n return singularize(tableName).replace(\n /.(?:(?:[_-]i|I)nput|(?:[_-]p|P)atch)$/,\n \"$&_record\"\n );\n }\n\n return deprecateEverything(\n preventEmptyResult({\n pluralize,\n argument(name: ?string, index: number) {\n return camelCase(name || `arg${index}`);\n },\n orderByType(typeName: string) {\n return upperCamelCase(`${pluralize(typeName)}-order-by`);\n },\n orderByEnum(\n name: string,\n ascending: boolean,\n _table: string,\n _schema: ?string\n ) {\n return constantCase(`${name}_${ascending ? \"asc\" : \"desc\"}`);\n },\n domainType(name: string) {\n return upperCamelCase(name);\n },\n enumName(inValue: string) {\n let value = inValue;\n\n if (value === \"\") {\n return \"_EMPTY_\";\n }\n\n // Some enums use asterisks to signify wildcards - this might be for\n // the whole item, or prefixes/suffixes, or even in the middle. This\n // is provided on a best efforts basis, if it doesn't suit your\n // purposes then please pass a custom inflector as mentioned below.\n value = value\n .replace(/\\*/g, \"_ASTERISK_\")\n .replace(/^(_?)_+ASTERISK/, \"$1ASTERISK\")\n .replace(/ASTERISK_(_?)_*$/, \"ASTERISK$1\");\n\n // This is a best efforts replacement for common symbols that you\n // might find in enums. Generally we only support enums that are\n // alphanumeric, if these replacements don't work for you, you should\n // pass a custom inflector that replaces this `enumName` method\n // with one of your own chosing.\n value =\n {\n // SQL comparison operators\n \">\": \"GREATER_THAN\",\n \">=\": \"GREATER_THAN_OR_EQUAL\",\n \"=\": \"EQUAL\",\n \"!=\": \"NOT_EQUAL\",\n \"<>\": \"DIFFERENT\",\n \"<=\": \"LESS_THAN_OR_EQUAL\",\n \"<\": \"LESS_THAN\",\n\n // PostgreSQL LIKE shortcuts\n \"~~\": \"LIKE\",\n \"~~*\": \"ILIKE\",\n \"!~~\": \"NOT_LIKE\",\n \"!~~*\": \"NOT_ILIKE\",\n\n // '~' doesn't necessarily represent regexps, but the three\n // operators following it likely do, so we'll use the word TILDE\n // in all for consistency.\n \"~\": \"TILDE\",\n \"~*\": \"TILDE_ASTERISK\",\n \"!~\": \"NOT_TILDE\",\n \"!~*\": \"NOT_TILDE_ASTERISK\",\n\n // A number of other symbols where we're not sure of their\n // meaning. We give them common generic names so that they're\n // suitable for multiple purposes, e.g. favouring 'PLUS' over\n // 'ADDITION' and 'DOT' over 'FULL_STOP'\n \"%\": \"PERCENT\",\n \"+\": \"PLUS\",\n \"-\": \"MINUS\",\n \"/\": \"SLASH\",\n \"\\\\\": \"BACKSLASH\",\n _: \"UNDERSCORE\",\n \"#\": \"POUND\",\n \"£\": \"STERLING\",\n $: \"DOLLAR\",\n \"&\": \"AMPERSAND\",\n \"@\": \"AT\",\n \"'\": \"APOSTROPHE\",\n '\"': \"QUOTE\",\n \"`\": \"BACKTICK\",\n \":\": \"COLON\",\n \";\": \"SEMICOLON\",\n \"!\": \"EXCLAMATION_POINT\",\n \"?\": \"QUESTION_MARK\",\n \",\": \"COMMA\",\n \".\": \"DOT\",\n \"^\": \"CARET\",\n \"|\": \"BAR\",\n \"[\": \"OPEN_BRACKET\",\n \"]\": \"CLOSE_BRACKET\",\n \"(\": \"OPEN_PARENTHESIS\",\n \")\": \"CLOSE_PARENTHESIS\",\n \"{\": \"OPEN_BRACE\",\n \"}\": \"CLOSE_BRACE\",\n }[value] || value;\n return value;\n },\n enumType(name: string) {\n return upperCamelCase(name);\n },\n conditionType(typeName: string) {\n return upperCamelCase(`${typeName}-condition`);\n },\n inputType(typeName: string) {\n return upperCamelCase(`${typeName}-input`);\n },\n rangeBoundType(typeName: string) {\n return upperCamelCase(`${typeName}-range-bound`);\n },\n rangeType(typeName: string) {\n return upperCamelCase(`${typeName}-range`);\n },\n patchType(typeName: string) {\n return upperCamelCase(`${typeName}-patch`);\n },\n patchField(itemName: string) {\n return camelCase(`${itemName}-patch`);\n },\n tableName(name: string, _schema: ?string) {\n return camelCase(singularizeTable(name));\n },\n tableNode(name: string, _schema: ?string) {\n return camelCase(singularizeTable(name));\n },\n allRows(name: string, schema: ?string) {\n return camelCase(`all-${this.pluralize(this.tableName(name, schema))}`);\n },\n functionName(name: string, _schema: ?string) {\n return camelCase(name);\n },\n functionPayloadType(name: string, _schema: ?string) {\n return upperCamelCase(`${name}-payload`);\n },\n functionInputType(name: string, _schema: ?string) {\n return upperCamelCase(`${name}-input`);\n },\n tableType(name: string, schema: ?string) {\n return upperCamelCase(this.tableName(name, schema));\n },\n column(name: string, _table: string, _schema: ?string) {\n return camelCase(name);\n },\n singleRelationByKeys(detailedKeys: Keys, table: string, schema: ?string) {\n return camelCase(\n `${this.tableName(table, schema)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n rowByUniqueKeys(detailedKeys: Keys, table: string, schema: ?string) {\n return camelCase(\n `${this.tableName(table, schema)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n updateByKeys(detailedKeys: Keys, table: string, schema: ?string) {\n return camelCase(\n `update-${this.tableName(table, schema)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n deleteByKeys(detailedKeys: Keys, table: string, schema: ?string) {\n return camelCase(\n `delete-${this.tableName(table, schema)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n updateNode(name: string, _schema: ?string) {\n return camelCase(`update-${singularizeTable(name)}`);\n },\n deleteNode(name: string, _schema: ?string) {\n return camelCase(`delete-${singularizeTable(name)}`);\n },\n updateByKeysInputType(\n detailedKeys: Keys,\n name: string,\n _schema: ?string\n ) {\n return upperCamelCase(\n `update-${singularizeTable(name)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}-input`\n );\n },\n deleteByKeysInputType(\n detailedKeys: Keys,\n name: string,\n _schema: ?string\n ) {\n return upperCamelCase(\n `delete-${singularizeTable(name)}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}-input`\n );\n },\n updateNodeInputType(name: string, _schema: ?string) {\n return upperCamelCase(`update-${singularizeTable(name)}-input`);\n },\n deleteNodeInputType(name: string, _schema: ?string) {\n return upperCamelCase(`delete-${singularizeTable(name)}-input`);\n },\n manyRelationByKeys(\n detailedKeys: Keys,\n table: string,\n schema: ?string,\n _foreignTable: string,\n _foreignSchema: ?string\n ) {\n return camelCase(\n `${this.pluralize(this.tableName(table, schema))}-by-${detailedKeys\n .map(key => this.column(key.column, key.table, key.schema))\n .join(\"-and-\")}`\n );\n },\n edge(typeName: string) {\n return upperCamelCase(`${pluralize(typeName)}-edge`);\n },\n edgeField(name: string, _schema: ?string) {\n return camelCase(`${singularizeTable(name)}-edge`);\n },\n connection(typeName: string) {\n return upperCamelCase(`${this.pluralize(typeName)}-connection`);\n },\n scalarFunctionConnection(procName: string, _procSchema: ?string) {\n return upperCamelCase(`${procName}-connection`);\n },\n scalarFunctionEdge(procName: string, _procSchema: ?string) {\n return upperCamelCase(`${procName}-edge`);\n },\n createField(name: string, _schema: ?string) {\n return camelCase(`create-${singularizeTable(name)}`);\n },\n createInputType(name: string, _schema: ?string) {\n return upperCamelCase(`create-${singularizeTable(name)}-input`);\n },\n createPayloadType(name: string, _schema: ?string) {\n return upperCamelCase(`create-${singularizeTable(name)}-payload`);\n },\n updatePayloadType(name: string, _schema: ?string) {\n return upperCamelCase(`update-${singularizeTable(name)}-payload`);\n },\n deletePayloadType(name: string, _schema: ?string) {\n return upperCamelCase(`delete-${singularizeTable(name)}-payload`);\n },\n ...overrides,\n })\n );\n};\n\nexport const defaultInflection = newInflector();\n"],"mappings":";;;;;;AAEA,IAAAA,cAAA,GAAAC,OAAA;AAQA,IAAAC,eAAA,GAAAD,OAAA;AAVA,wEAYA,MAAME,cAAc,GAAG,EAAE;;AAEzB;AACA,SAASC,SAASA,CAACC,EAAoC,EAAEC,OAAe,EAAE;EACxE,IAAI,OAAOD,EAAE,KAAK,UAAU,EAAE;IAC5B,OAAOA,EAAE;EACX;EACA,OAAO,UAAU,GAAGE,IAAI,EAAE;IACxB,IAAIJ,cAAc,CAACK,OAAO,CAACF,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;MAC1CH,cAAc,CAACM,IAAI,CAACH,OAAO,CAAC;MAC5B;MACAI,OAAO,CAACC,IAAI,CAAC,IAAIC,KAAK,CAACN,OAAO,CAAC,CAAC;IAClC;IACA,OAAOD,EAAE,CAACQ,KAAK,CAAC,IAAI,EAAEN,IAAI,CAAC;EAC7B,CAAC;AACH;AAEA,SAASO,mBAAmBA,CAACC,GAG5B,EAAE;EACD,OAAOC,MAAM,CAACC,IAAI,CAACF,GAAG,CAAC,CAACG,MAAM,CAAC,CAACC,IAAI,EAAEC,GAAG,KAAK;IAC5CD,IAAI,CAACC,GAAG,CAAC,GAAGhB,SAAS,CACnBW,GAAG,CAACK,GAAG,CAAC,EACP,+EAA8EA,GAAI,mPACrF,CAAC;IACD,OAAOD,IAAI;EACb,CAAC,EAAE,CAAC,CAAC,CAAC;AACR;AAgBO,MAAME,YAA4B,GAAG;EAC1CC,YAAY,EAAZA,2BAAY;EACZC,SAAS,EAATA,wBAAS;EACTC,cAAc,EAAdA,6BAAc;EACdC,SAAS,EAATA,wBAAS;EACTC,WAAW,EAAXA;AACF,CAAC;AAACC,OAAA,CAAAN,YAAA,GAAAA,YAAA;AAQK,MAAMO,YAAY,GAAGA,CAC1BC,SAAsC,GAAGC,SAAS,EAClD;EACER,YAAY;EACZC,SAAS;EACTC,cAAc;EACdC,SAAS;EACTC;AACc,CAAC,GAAGL,YAAY,KAClB;EACd,SAASU,gBAAgBA,CAACC,SAAiB,EAAU;IACnD,OAAON,WAAW,CAACM,SAAS,CAAC,CAACC,OAAO,CACnC,uCAAuC,EACvC,WACF,CAAC;EACH;EAEA,OAAOnB,mBAAmB,CACxB,IAAAoB,kCAAkB,EAAC;IACjBT,SAAS;IACTU,QAAQA,CAACC,IAAa,EAAEC,KAAa,EAAE;MACrC,OAAOd,SAAS,CAACa,IAAI,IAAK,MAAKC,KAAM,EAAC,CAAC;IACzC,CAAC;IACDC,WAAWA,CAACC,QAAgB,EAAE;MAC5B,OAAOf,cAAc,CAAE,GAAEC,SAAS,CAACc,QAAQ,CAAE,WAAU,CAAC;IAC1D,CAAC;IACDC,WAAWA,CACTJ,IAAY,EACZK,SAAkB,EAClBC,MAAc,EACdC,OAAgB,EAChB;MACA,OAAOrB,YAAY,CAAE,GAAEc,IAAK,IAAGK,SAAS,GAAG,KAAK,GAAG,MAAO,EAAC,CAAC;IAC9D,CAAC;IACDG,UAAUA,CAACR,IAAY,EAAE;MACvB,OAAOZ,cAAc,CAACY,IAAI,CAAC;IAC7B,CAAC;IACDS,QAAQA,CAACC,OAAe,EAAE;MACxB,IAAIC,KAAK,GAAGD,OAAO;MAEnB,IAAIC,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,SAAS;MAClB;;MAEA;MACA;MACA;MACA;MACAA,KAAK,GAAGA,KAAK,CACVd,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAC5BA,OAAO,CAAC,iBAAiB,EAAE,YAAY,CAAC,CACxCA,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC;;MAE5C;MACA;MACA;MACA;MACA;MACAc,KAAK,GACH;QACE;QACA,GAAG,EAAE,cAAc;QACnB,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,WAAW;QAEhB;QACA,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,WAAW;QAEnB;QACA;QACA;QACA,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,oBAAoB;QAE3B;QACA;QACA;QACA;QACA,GAAG,EAAE,SAAS;QACd,GAAG,EAAE,MAAM;QACX,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,WAAW;QACjBC,CAAC,EAAE,YAAY;QACf,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,UAAU;QACfC,CAAC,EAAE,QAAQ;QACX,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,YAAY;QACjB,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,UAAU;QACf,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,eAAe;QACpB,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,eAAe;QACpB,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,YAAY;QACjB,GAAG,EAAE;MACP,CAAC,CAACF,KAAK,CAAC,IAAIA,KAAK;MACnB,OAAOA,KAAK;IACd,CAAC;IACDG,QAAQA,CAACd,IAAY,EAAE;MACrB,OAAOZ,cAAc,CAACY,IAAI,CAAC;IAC7B,CAAC;IACDe,aAAaA,CAACZ,QAAgB,EAAE;MAC9B,OAAOf,cAAc,CAAE,GAAEe,QAAS,YAAW,CAAC;IAChD,CAAC;IACDa,SAASA,CAACb,QAAgB,EAAE;MAC1B,OAAOf,cAAc,CAAE,GAAEe,QAAS,QAAO,CAAC;IAC5C,CAAC;IACDc,cAAcA,CAACd,QAAgB,EAAE;MAC/B,OAAOf,cAAc,CAAE,GAAEe,QAAS,cAAa,CAAC;IAClD,CAAC;IACDe,SAASA,CAACf,QAAgB,EAAE;MAC1B,OAAOf,cAAc,CAAE,GAAEe,QAAS,QAAO,CAAC;IAC5C,CAAC;IACDgB,SAASA,CAAChB,QAAgB,EAAE;MAC1B,OAAOf,cAAc,CAAE,GAAEe,QAAS,QAAO,CAAC;IAC5C,CAAC;IACDiB,UAAUA,CAACC,QAAgB,EAAE;MAC3B,OAAOlC,SAAS,CAAE,GAAEkC,QAAS,QAAO,CAAC;IACvC,CAAC;IACDzB,SAASA,CAACI,IAAY,EAAEO,OAAgB,EAAE;MACxC,OAAOpB,SAAS,CAACQ,gBAAgB,CAACK,IAAI,CAAC,CAAC;IAC1C,CAAC;IACDsB,SAASA,CAACtB,IAAY,EAAEO,OAAgB,EAAE;MACxC,OAAOpB,SAAS,CAACQ,gBAAgB,CAACK,IAAI,CAAC,CAAC;IAC1C,CAAC;IACDuB,OAAOA,CAACvB,IAAY,EAAEwB,MAAe,EAAE;MACrC,OAAOrC,SAAS,CAAE,OAAM,IAAI,CAACE,SAAS,CAAC,IAAI,CAACO,SAAS,CAACI,IAAI,EAAEwB,MAAM,CAAC,CAAE,EAAC,CAAC;IACzE,CAAC;IACDC,YAAYA,CAACzB,IAAY,EAAEO,OAAgB,EAAE;MAC3C,OAAOpB,SAAS,CAACa,IAAI,CAAC;IACxB,CAAC;IACD0B,mBAAmBA,CAAC1B,IAAY,EAAEO,OAAgB,EAAE;MAClD,OAAOnB,cAAc,CAAE,GAAEY,IAAK,UAAS,CAAC;IAC1C,CAAC;IACD2B,iBAAiBA,CAAC3B,IAAY,EAAEO,OAAgB,EAAE;MAChD,OAAOnB,cAAc,CAAE,GAAEY,IAAK,QAAO,CAAC;IACxC,CAAC;IACD4B,SAASA,CAAC5B,IAAY,EAAEwB,MAAe,EAAE;MACvC,OAAOpC,cAAc,CAAC,IAAI,CAACQ,SAAS,CAACI,IAAI,EAAEwB,MAAM,CAAC,CAAC;IACrD,CAAC;IACDK,MAAMA,CAAC7B,IAAY,EAAEM,MAAc,EAAEC,OAAgB,EAAE;MACrD,OAAOpB,SAAS,CAACa,IAAI,CAAC;IACxB,CAAC;IACD8B,oBAAoBA,CAACC,YAAkB,EAAEC,KAAa,EAAER,MAAe,EAAE;MACvE,OAAOrC,SAAS,CACb,GAAE,IAAI,CAACS,SAAS,CAACoC,KAAK,EAAER,MAAM,CAAE,OAAMO,YAAY,CAChDE,GAAG,CAACjD,GAAG,IAAI,IAAI,CAAC6C,MAAM,CAAC7C,GAAG,CAAC6C,MAAM,EAAE7C,GAAG,CAACgD,KAAK,EAAEhD,GAAG,CAACwC,MAAM,CAAC,CAAC,CAC1DU,IAAI,CAAC,OAAO,CAAE,EACnB,CAAC;IACH,CAAC;IACDC,eAAeA,CAACJ,YAAkB,EAAEC,KAAa,EAAER,MAAe,EAAE;MAClE,OAAOrC,SAAS,CACb,GAAE,IAAI,CAACS,SAAS,CAACoC,KAAK,EAAER,MAAM,CAAE,OAAMO,YAAY,CAChDE,GAAG,CAACjD,GAAG,IAAI,IAAI,CAAC6C,MAAM,CAAC7C,GAAG,CAAC6C,MAAM,EAAE7C,GAAG,CAACgD,KAAK,EAAEhD,GAAG,CAACwC,MAAM,CAAC,CAAC,CAC1DU,IAAI,CAAC,OAAO,CAAE,EACnB,CAAC;IACH,CAAC;IACDE,YAAYA,CAACL,YAAkB,EAAEC,KAAa,EAAER,MAAe,EAAE;MAC/D,OAAOrC,SAAS,CACb,UAAS,IAAI,CAACS,SAAS,CAACoC,KAAK,EAAER,MAAM,CAAE,OAAMO,YAAY,CACvDE,GAAG,CAACjD,GAAG,IAAI,IAAI,CAAC6C,MAAM,CAAC7C,GAAG,CAAC6C,MAAM,EAAE7C,GAAG,CAACgD,KAAK,EAAEhD,GAAG,CAACwC,MAAM,CAAC,CAAC,CAC1DU,IAAI,CAAC,OAAO,CAAE,EACnB,CAAC;IACH,CAAC;IACDG,YAAYA,CAACN,YAAkB,EAAEC,KAAa,EAAER,MAAe,EAAE;MAC/D,OAAOrC,SAAS,CACb,UAAS,IAAI,CAACS,SAAS,CAACoC,KAAK,EAAER,MAAM,CAAE,OAAMO,YAAY,CACvDE,GAAG,CAACjD,GAAG,IAAI,IAAI,CAAC6C,MAAM,CAAC7C,GAAG,CAAC6C,MAAM,EAAE7C,GAAG,CAACgD,KAAK,EAAEhD,GAAG,CAACwC,MAAM,CAAC,CAAC,CAC1DU,IAAI,CAAC,OAAO,CAAE,EACnB,CAAC;IACH,CAAC;IACDI,UAAUA,CAACtC,IAAY,EAAEO,OAAgB,EAAE;MACzC,OAAOpB,SAAS,CAAE,UAASQ,gBAAgB,CAACK,IAAI,CAAE,EAAC,CAAC;IACtD,CAAC;IACDuC,UAAUA,CAACvC,IAAY,EAAEO,OAAgB,EAAE;MACzC,OAAOpB,SAAS,CAAE,UAASQ,gBAAgB,CAACK,IAAI,CAAE,EAAC,CAAC;IACtD,CAAC;IACDwC,qBAAqBA,CACnBT,YAAkB,EAClB/B,IAAY,EACZO,OAAgB,EAChB;MACA,OAAOnB,cAAc,CAClB,UAASO,gBAAgB,CAACK,IAAI,CAAE,OAAM+B,YAAY,CAChDE,GAAG,CAACjD,GAAG,IAAI,IAAI,CAAC6C,MAAM,CAAC7C,GAAG,CAAC6C,MAAM,EAAE7C,GAAG,CAACgD,KAAK,EAAEhD,GAAG,CAACwC,MAAM,CAAC,CAAC,CAC1DU,IAAI,CAAC,OAAO,CAAE,QACnB,CAAC;IACH,CAAC;IACDO,qBAAqBA,CACnBV,YAAkB,EAClB/B,IAAY,EACZO,OAAgB,EAChB;MACA,OAAOnB,cAAc,CAClB,UAASO,gBAAgB,CAACK,IAAI,CAAE,OAAM+B,YAAY,CAChDE,GAAG,CAACjD,GAAG,IAAI,IAAI,CAAC6C,MAAM,CAAC7C,GAAG,CAAC6C,MAAM,EAAE7C,GAAG,CAACgD,KAAK,EAAEhD,GAAG,CAACwC,MAAM,CAAC,CAAC,CAC1DU,IAAI,CAAC,OAAO,CAAE,QACnB,CAAC;IACH,CAAC;IACDQ,mBAAmBA,CAAC1C,IAAY,EAAEO,OAAgB,EAAE;MAClD,OAAOnB,cAAc,CAAE,UAASO,gBAAgB,CAACK,IAAI,CAAE,QAAO,CAAC;IACjE,CAAC;IACD2C,mBAAmBA,CAAC3C,IAAY,EAAEO,OAAgB,EAAE;MAClD,OAAOnB,cAAc,CAAE,UAASO,gBAAgB,CAACK,IAAI,CAAE,QAAO,CAAC;IACjE,CAAC;IACD4C,kBAAkBA,CAChBb,YAAkB,EAClBC,KAAa,EACbR,MAAe,EACfqB,aAAqB,EACrBC,cAAuB,EACvB;MACA,OAAO3D,SAAS,CACb,GAAE,IAAI,CAACE,SAAS,CAAC,IAAI,CAACO,SAAS,CAACoC,KAAK,EAAER,MAAM,CAAC,CAAE,OAAMO,YAAY,CAChEE,GAAG,CAACjD,GAAG,IAAI,IAAI,CAAC6C,MAAM,CAAC7C,GAAG,CAAC6C,MAAM,EAAE7C,GAAG,CAACgD,KAAK,EAAEhD,GAAG,CAACwC,MAAM,CAAC,CAAC,CAC1DU,IAAI,CAAC,OAAO,CAAE,EACnB,CAAC;IACH,CAAC;IACDa,IAAIA,CAAC5C,QAAgB,EAAE;MACrB,OAAOf,cAAc,CAAE,GAAEC,SAAS,CAACc,QAAQ,CAAE,OAAM,CAAC;IACtD,CAAC;IACD6C,SAASA,CAAChD,IAAY,EAAEO,OAAgB,EAAE;MACxC,OAAOpB,SAAS,CAAE,GAAEQ,gBAAgB,CAACK,IAAI,CAAE,OAAM,CAAC;IACpD,CAAC;IACDiD,UAAUA,CAAC9C,QAAgB,EAAE;MAC3B,OAAOf,cAAc,CAAE,GAAE,IAAI,CAACC,SAAS,CAACc,QAAQ,CAAE,aAAY,CAAC;IACjE,CAAC;IACD+C,wBAAwBA,CAACC,QAAgB,EAAEC,WAAoB,EAAE;MAC/D,OAAOhE,cAAc,CAAE,GAAE+D,QAAS,aAAY,CAAC;IACjD,CAAC;IACDE,kBAAkBA,CAACF,QAAgB,EAAEC,WAAoB,EAAE;MACzD,OAAOhE,cAAc,CAAE,GAAE+D,QAAS,OAAM,CAAC;IAC3C,CAAC;IACDG,WAAWA,CAACtD,IAAY,EAAEO,OAAgB,EAAE;MAC1C,OAAOpB,SAAS,CAAE,UAASQ,gBAAgB,CAACK,IAAI,CAAE,EAAC,CAAC;IACtD,CAAC;IACDuD,eAAeA,CAACvD,IAAY,EAAEO,OAAgB,EAAE;MAC9C,OAAOnB,cAAc,CAAE,UAASO,gBAAgB,CAACK,IAAI,CAAE,QAAO,CAAC;IACjE,CAAC;IACDwD,iBAAiBA,CAACxD,IAAY,EAAEO,OAAgB,EAAE;MAChD,OAAOnB,cAAc,CAAE,UAASO,gBAAgB,CAACK,IAAI,CAAE,UAAS,CAAC;IACnE,CAAC;IACDyD,iBAAiBA,CAACzD,IAAY,EAAEO,OAAgB,EAAE;MAChD,OAAOnB,cAAc,CAAE,UAASO,gBAAgB,CAACK,IAAI,CAAE,UAAS,CAAC;IACnE,CAAC;IACD0D,iBAAiBA,CAAC1D,IAAY,EAAEO,OAAgB,EAAE;MAChD,OAAOnB,cAAc,CAAE,UAASO,gBAAgB,CAACK,IAAI,CAAE,UAAS,CAAC;IACnE,CAAC;IACD,GAAGP;EACL,CAAC,CACH,CAAC;AACH,CAAC;AAACF,OAAA,CAAAC,YAAA,GAAAA,YAAA;AAEK,MAAMmE,iBAAiB,GAAGnE,YAAY,CAAC,CAAC;AAACD,OAAA,CAAAoE,iBAAA,GAAAA,iBAAA"}
package/node8plus/omit.js CHANGED
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.UPDATE = exports.READ = exports.ORDER = exports.MANY = exports.FILTER = exports.EXECUTE = exports.DELETE = exports.CREATE = exports.BASE = exports.ALL = void 0;
7
7
  exports.default = omit;
8
-
9
8
  /*
10
9
  * Please only use capitals for aliases and lower case for the values.
11
10
  */
@@ -42,12 +41,10 @@ const aliases = {
42
41
  B: BASE
43
42
  };
44
43
  const PERMISSIONS_THAT_REQUIRE_READ = [UPDATE, CREATE, DELETE, ALL, MANY];
45
-
46
44
  function parse(arrOrNot, errorPrefix = "Error") {
47
45
  if (!arrOrNot) {
48
46
  return null;
49
47
  }
50
-
51
48
  const arr = Array.isArray(arrOrNot) ? arrOrNot : [arrOrNot];
52
49
  let all = false;
53
50
  const arrayNormalized = [].concat(...arr.map(str => {
@@ -55,71 +52,59 @@ function parse(arrOrNot, errorPrefix = "Error") {
55
52
  all = true;
56
53
  return [];
57
54
  }
58
-
59
55
  if (str[0] === ":") {
60
56
  const perms = str.slice(1).split("").map(p => aliases[p]);
61
57
  const bad = perms.find(p => !p);
62
-
63
58
  if (bad) {
64
59
  throw new Error(`${errorPrefix} - abbreviated parameter '${bad}' not understood`);
65
60
  }
66
-
67
61
  return perms;
68
62
  } else {
69
- const perms = str.split(","); // TODO: warning if not in list?
70
-
63
+ const perms = str.split(",");
64
+ // TODO: warning if not in list?
71
65
  return perms;
72
66
  }
73
67
  }));
74
-
75
68
  if (all) {
76
69
  return true;
77
70
  }
78
-
79
71
  return arrayNormalized;
80
72
  }
81
-
82
73
  function omit(entity, permission) {
83
74
  const tags = entity.tags;
84
- const omitSpecRaw = tags.omit; // '@include' is not being released yet because it would mean every new
85
- // filter we added would become a breaking change for people using @include.
75
+ const omitSpecRaw = tags.omit;
86
76
 
87
- const includeSpecRaw = null; // const includeSpecRaw = tags.include;
77
+ // '@include' is not being released yet because it would mean every new
78
+ // filter we added would become a breaking change for people using @include.
79
+ const includeSpecRaw = null;
80
+ // const includeSpecRaw = tags.include;
88
81
 
89
82
  if (omitSpecRaw && includeSpecRaw) {
90
83
  throw new Error(`Error when processing instructions for ${entity.kind} '${entity.name}' - you must only specify @omit or @include, not both`);
91
84
  }
92
-
93
85
  const omitSpec = parse(omitSpecRaw, `Error when processing @omit instructions for ${entity.kind} '${entity.name}'`);
94
86
  const includeSpec = parse(includeSpecRaw, `Error when processing @include instructions for ${entity.kind} '${entity.name}'`);
95
-
96
87
  if (omitSpec) {
97
88
  if (omitSpec === true) {
98
89
  return true;
99
90
  }
100
-
101
91
  if (omitSpec.indexOf(READ) >= 0) {
102
92
  const bad = PERMISSIONS_THAT_REQUIRE_READ.filter(p => omitSpec.indexOf(p) === -1);
103
-
104
93
  if (bad.length > 0) {
105
94
  throw new Error(`Processing @omit for ${entity.kind} '${entity.name}' - '${bad.join(",")}' must be omitted when '${READ}' is omitted. Add '${bad.join(",")}' to the @omit clause, or use '@omit' to omit all actions.`);
106
95
  }
107
96
  }
108
-
109
97
  return omitSpec.indexOf(permission) >= 0;
110
98
  } else if (includeSpec) {
111
99
  if (includeSpec === true) {
112
100
  throw new Error(`Error when processing instructions for ${entity.kind} '${entity.name}' - @include should specify a list of actions`);
113
101
  }
114
-
115
102
  if (includeSpec.indexOf(READ) === -1) {
116
103
  const bad = PERMISSIONS_THAT_REQUIRE_READ.find(p => includeSpec.indexOf(p) >= 0);
117
-
118
104
  if (bad) {
119
105
  throw new Error(`Error when processing @include for ${entity.kind} '${entity.name}' - we currently don't support '${bad}' when '${READ}' is forbidden`);
120
106
  }
121
107
  }
122
-
123
108
  return includeSpec.indexOf(permission) === -1;
124
109
  } else {
125
110
  return false;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/omit.js"],"names":["CREATE","READ","UPDATE","DELETE","FILTER","ORDER","ALL","MANY","EXECUTE","BASE","aliases","C","R","U","D","F","O","A","M","X","B","PERMISSIONS_THAT_REQUIRE_READ","parse","arrOrNot","errorPrefix","arr","Array","isArray","all","arrayNormalized","concat","map","str","perms","slice","split","p","bad","find","Error","omit","entity","permission","tags","omitSpecRaw","includeSpecRaw","kind","name","omitSpec","includeSpec","indexOf","filter","length","join"],"mappings":";;;;;;;;AASA;AACA;AACA;AACO,MAAMA,MAAM,GAAG,QAAf;;AACA,MAAMC,IAAI,GAAG,MAAb;;AACA,MAAMC,MAAM,GAAG,QAAf;;AACA,MAAMC,MAAM,GAAG,QAAf;;AACA,MAAMC,MAAM,GAAG,QAAf;;AACA,MAAMC,KAAK,GAAG,OAAd;;AACA,MAAMC,GAAG,GAAG,KAAZ;;AACA,MAAMC,IAAI,GAAG,MAAb;;AACA,MAAMC,OAAO,GAAG,SAAhB;;AACA,MAAMC,IAAI,GAAG,MAAb;;AAEP,MAAMC,OAAO,GAAG;AACdC,EAAAA,CAAC,EAAEX,MADW;AAEdY,EAAAA,CAAC,EAAEX,IAFW;AAGdY,EAAAA,CAAC,EAAEX,MAHW;AAIdY,EAAAA,CAAC,EAAEX,MAJW;AAKdY,EAAAA,CAAC,EAAEX,MALW;AAMdY,EAAAA,CAAC,EAAEX,KANW;AAOdY,EAAAA,CAAC,EAAEX,GAPW;AAQdY,EAAAA,CAAC,EAAEX,IARW;AASdY,EAAAA,CAAC,EAAEX,OATW;AAUdY,EAAAA,CAAC,EAAEX;AAVW,CAAhB;AAaA,MAAMY,6BAA6B,GAAG,CAACnB,MAAD,EAASF,MAAT,EAAiBG,MAAjB,EAAyBG,GAAzB,EAA8BC,IAA9B,CAAtC;;AAEA,SAASe,KAAT,CAAeC,QAAf,EAAyBC,WAAW,GAAG,OAAvC,EAAgD;AAC9C,MAAI,CAACD,QAAL,EAAe;AACb,WAAO,IAAP;AACD;;AACD,QAAME,GAAG,GAAGC,KAAK,CAACC,OAAN,CAAcJ,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAAjD;AACA,MAAIK,GAAG,GAAG,KAAV;AACA,QAAMC,eAAe,GAAG,GAAGC,MAAH,CACtB,GAAGL,GAAG,CAACM,GAAJ,CAAQC,GAAG,IAAI;AAChB,QAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAK,GAA5B,EAAiC;AAC/BJ,MAAAA,GAAG,GAAG,IAAN;AACA,aAAO,EAAP;AACD;;AACD,QAAII,GAAG,CAAC,CAAD,CAAH,KAAW,GAAf,EAAoB;AAClB,YAAMC,KAAK,GAAGD,GAAG,CACdE,KADW,CACL,CADK,EAEXC,KAFW,CAEL,EAFK,EAGXJ,GAHW,CAGPK,CAAC,IAAI1B,OAAO,CAAC0B,CAAD,CAHL,CAAd;AAIA,YAAMC,GAAG,GAAGJ,KAAK,CAACK,IAAN,CAAWF,CAAC,IAAI,CAACA,CAAjB,CAAZ;;AACA,UAAIC,GAAJ,EAAS;AACP,cAAM,IAAIE,KAAJ,CACH,GAAEf,WAAY,6BAA4Ba,GAAI,kBAD3C,CAAN;AAGD;;AACD,aAAOJ,KAAP;AACD,KAZD,MAYO;AACL,YAAMA,KAAK,GAAGD,GAAG,CAACG,KAAJ,CAAU,GAAV,CAAd,CADK,CAEL;;AACA,aAAOF,KAAP;AACD;AACF,GAtBE,CADmB,CAAxB;;AAyBA,MAAIL,GAAJ,EAAS;AACP,WAAO,IAAP;AACD;;AACD,SAAOC,eAAP;AACD;;AAEc,SAASW,IAAT,CACbC,MADa,EAEbC,UAFa,EAGb;AACA,QAAMC,IAAI,GAAGF,MAAM,CAACE,IAApB;AACA,QAAMC,WAAW,GAAGD,IAAI,CAACH,IAAzB,CAFA,CAIA;AACA;;AACA,QAAMK,cAAc,GAAG,IAAvB,CANA,CAOA;;AAEA,MAAID,WAAW,IAAIC,cAAnB,EAAmC;AACjC,UAAM,IAAIN,KAAJ,CACH,0CAAyCE,MAAM,CAACK,IAAK,KAAIL,MAAM,CAACM,IAAK,uDADlE,CAAN;AAGD;;AACD,QAAMC,QAAQ,GAAG1B,KAAK,CACpBsB,WADoB,EAEnB,gDAA+CH,MAAM,CAACK,IAAK,KAAIL,MAAM,CAACM,IAAK,GAFxD,CAAtB;AAIA,QAAME,WAAW,GAAG3B,KAAK,CACvBuB,cADuB,EAEtB,mDAAkDJ,MAAM,CAACK,IAAK,KAAIL,MAAM,CAACM,IAAK,GAFxD,CAAzB;;AAKA,MAAIC,QAAJ,EAAc;AACZ,QAAIA,QAAQ,KAAK,IAAjB,EAAuB;AACrB,aAAO,IAAP;AACD;;AACD,QAAIA,QAAQ,CAACE,OAAT,CAAiBjD,IAAjB,KAA0B,CAA9B,EAAiC;AAC/B,YAAMoC,GAAG,GAAGhB,6BAA6B,CAAC8B,MAA9B,CACVf,CAAC,IAAIY,QAAQ,CAACE,OAAT,CAAiBd,CAAjB,MAAwB,CAAC,CADpB,CAAZ;;AAGA,UAAIC,GAAG,CAACe,MAAJ,GAAa,CAAjB,EAAoB;AAClB,cAAM,IAAIb,KAAJ,CACH,wBAAuBE,MAAM,CAACK,IAAK,KAAIL,MAAM,CAACM,IAAK,QAAOV,GAAG,CAACgB,IAAJ,CACzD,GADyD,CAEzD,2BAA0BpD,IAAK,sBAAqBoC,GAAG,CAACgB,IAAJ,CACpD,GADoD,CAEpD,4DALE,CAAN;AAOD;AACF;;AACD,WAAOL,QAAQ,CAACE,OAAT,CAAiBR,UAAjB,KAAgC,CAAvC;AACD,GAnBD,MAmBO,IAAIO,WAAJ,EAAiB;AACtB,QAAIA,WAAW,KAAK,IAApB,EAA0B;AACxB,YAAM,IAAIV,KAAJ,CACH,0CAAyCE,MAAM,CAACK,IAAK,KAAIL,MAAM,CAACM,IAAK,+CADlE,CAAN;AAGD;;AACD,QAAIE,WAAW,CAACC,OAAZ,CAAoBjD,IAApB,MAA8B,CAAC,CAAnC,EAAsC;AACpC,YAAMoC,GAAG,GAAGhB,6BAA6B,CAACiB,IAA9B,CACVF,CAAC,IAAIa,WAAW,CAACC,OAAZ,CAAoBd,CAApB,KAA0B,CADrB,CAAZ;;AAGA,UAAIC,GAAJ,EAAS;AACP,cAAM,IAAIE,KAAJ,CACH,sCAAqCE,MAAM,CAACK,IAAK,KAAIL,MAAM,CAACM,IAAK,mCAAkCV,GAAI,WAAUpC,IAAK,gBADnH,CAAN;AAGD;AACF;;AACD,WAAOgD,WAAW,CAACC,OAAZ,CAAoBR,UAApB,MAAoC,CAAC,CAA5C;AACD,GAjBM,MAiBA;AACL,WAAO,KAAP;AACD;AACF","sourcesContent":["// @flow\n\nimport type {\n PgProc,\n PgClass,\n PgAttribute,\n PgConstraint,\n} from \"./plugins/PgIntrospectionPlugin\";\n\n/*\n * Please only use capitals for aliases and lower case for the values.\n */\nexport const CREATE = \"create\";\nexport const READ = \"read\";\nexport const UPDATE = \"update\";\nexport const DELETE = \"delete\";\nexport const FILTER = \"filter\";\nexport const ORDER = \"order\";\nexport const ALL = \"all\";\nexport const MANY = \"many\";\nexport const EXECUTE = \"execute\";\nexport const BASE = \"base\";\n\nconst aliases = {\n C: CREATE,\n R: READ,\n U: UPDATE,\n D: DELETE,\n F: FILTER,\n O: ORDER,\n A: ALL,\n M: MANY,\n X: EXECUTE,\n B: BASE,\n};\n\nconst PERMISSIONS_THAT_REQUIRE_READ = [UPDATE, CREATE, DELETE, ALL, MANY];\n\nfunction parse(arrOrNot, errorPrefix = \"Error\") {\n if (!arrOrNot) {\n return null;\n }\n const arr = Array.isArray(arrOrNot) ? arrOrNot : [arrOrNot];\n let all = false;\n const arrayNormalized = [].concat(\n ...arr.map(str => {\n if (str === true || str === \"*\") {\n all = true;\n return [];\n }\n if (str[0] === \":\") {\n const perms = str\n .slice(1)\n .split(\"\")\n .map(p => aliases[p]);\n const bad = perms.find(p => !p);\n if (bad) {\n throw new Error(\n `${errorPrefix} - abbreviated parameter '${bad}' not understood`\n );\n }\n return perms;\n } else {\n const perms = str.split(\",\");\n // TODO: warning if not in list?\n return perms;\n }\n })\n );\n if (all) {\n return true;\n }\n return arrayNormalized;\n}\n\nexport default function omit(\n entity: PgProc | PgClass | PgAttribute | PgConstraint,\n permission: string\n) {\n const tags = entity.tags;\n const omitSpecRaw = tags.omit;\n\n // '@include' is not being released yet because it would mean every new\n // filter we added would become a breaking change for people using @include.\n const includeSpecRaw = null;\n // const includeSpecRaw = tags.include;\n\n if (omitSpecRaw && includeSpecRaw) {\n throw new Error(\n `Error when processing instructions for ${entity.kind} '${entity.name}' - you must only specify @omit or @include, not both`\n );\n }\n const omitSpec = parse(\n omitSpecRaw,\n `Error when processing @omit instructions for ${entity.kind} '${entity.name}'`\n );\n const includeSpec = parse(\n includeSpecRaw,\n `Error when processing @include instructions for ${entity.kind} '${entity.name}'`\n );\n\n if (omitSpec) {\n if (omitSpec === true) {\n return true;\n }\n if (omitSpec.indexOf(READ) >= 0) {\n const bad = PERMISSIONS_THAT_REQUIRE_READ.filter(\n p => omitSpec.indexOf(p) === -1\n );\n if (bad.length > 0) {\n throw new Error(\n `Processing @omit for ${entity.kind} '${entity.name}' - '${bad.join(\n \",\"\n )}' must be omitted when '${READ}' is omitted. Add '${bad.join(\n \",\"\n )}' to the @omit clause, or use '@omit' to omit all actions.`\n );\n }\n }\n return omitSpec.indexOf(permission) >= 0;\n } else if (includeSpec) {\n if (includeSpec === true) {\n throw new Error(\n `Error when processing instructions for ${entity.kind} '${entity.name}' - @include should specify a list of actions`\n );\n }\n if (includeSpec.indexOf(READ) === -1) {\n const bad = PERMISSIONS_THAT_REQUIRE_READ.find(\n p => includeSpec.indexOf(p) >= 0\n );\n if (bad) {\n throw new Error(\n `Error when processing @include for ${entity.kind} '${entity.name}' - we currently don't support '${bad}' when '${READ}' is forbidden`\n );\n }\n }\n return includeSpec.indexOf(permission) === -1;\n } else {\n return false;\n }\n}\n"],"file":"omit.js"}
1
+ {"version":3,"file":"omit.js","names":["CREATE","exports","READ","UPDATE","DELETE","FILTER","ORDER","ALL","MANY","EXECUTE","BASE","aliases","C","R","U","D","F","O","A","M","X","B","PERMISSIONS_THAT_REQUIRE_READ","parse","arrOrNot","errorPrefix","arr","Array","isArray","all","arrayNormalized","concat","map","str","perms","slice","split","p","bad","find","Error","omit","entity","permission","tags","omitSpecRaw","includeSpecRaw","kind","name","omitSpec","includeSpec","indexOf","filter","length","join"],"sources":["../src/omit.js"],"sourcesContent":["// @flow\n\nimport type {\n PgProc,\n PgClass,\n PgAttribute,\n PgConstraint,\n} from \"./plugins/PgIntrospectionPlugin\";\n\n/*\n * Please only use capitals for aliases and lower case for the values.\n */\nexport const CREATE = \"create\";\nexport const READ = \"read\";\nexport const UPDATE = \"update\";\nexport const DELETE = \"delete\";\nexport const FILTER = \"filter\";\nexport const ORDER = \"order\";\nexport const ALL = \"all\";\nexport const MANY = \"many\";\nexport const EXECUTE = \"execute\";\nexport const BASE = \"base\";\n\nconst aliases = {\n C: CREATE,\n R: READ,\n U: UPDATE,\n D: DELETE,\n F: FILTER,\n O: ORDER,\n A: ALL,\n M: MANY,\n X: EXECUTE,\n B: BASE,\n};\n\nconst PERMISSIONS_THAT_REQUIRE_READ = [UPDATE, CREATE, DELETE, ALL, MANY];\n\nfunction parse(arrOrNot, errorPrefix = \"Error\") {\n if (!arrOrNot) {\n return null;\n }\n const arr = Array.isArray(arrOrNot) ? arrOrNot : [arrOrNot];\n let all = false;\n const arrayNormalized = [].concat(\n ...arr.map(str => {\n if (str === true || str === \"*\") {\n all = true;\n return [];\n }\n if (str[0] === \":\") {\n const perms = str\n .slice(1)\n .split(\"\")\n .map(p => aliases[p]);\n const bad = perms.find(p => !p);\n if (bad) {\n throw new Error(\n `${errorPrefix} - abbreviated parameter '${bad}' not understood`\n );\n }\n return perms;\n } else {\n const perms = str.split(\",\");\n // TODO: warning if not in list?\n return perms;\n }\n })\n );\n if (all) {\n return true;\n }\n return arrayNormalized;\n}\n\nexport default function omit(\n entity: PgProc | PgClass | PgAttribute | PgConstraint,\n permission: string\n) {\n const tags = entity.tags;\n const omitSpecRaw = tags.omit;\n\n // '@include' is not being released yet because it would mean every new\n // filter we added would become a breaking change for people using @include.\n const includeSpecRaw = null;\n // const includeSpecRaw = tags.include;\n\n if (omitSpecRaw && includeSpecRaw) {\n throw new Error(\n `Error when processing instructions for ${entity.kind} '${entity.name}' - you must only specify @omit or @include, not both`\n );\n }\n const omitSpec = parse(\n omitSpecRaw,\n `Error when processing @omit instructions for ${entity.kind} '${entity.name}'`\n );\n const includeSpec = parse(\n includeSpecRaw,\n `Error when processing @include instructions for ${entity.kind} '${entity.name}'`\n );\n\n if (omitSpec) {\n if (omitSpec === true) {\n return true;\n }\n if (omitSpec.indexOf(READ) >= 0) {\n const bad = PERMISSIONS_THAT_REQUIRE_READ.filter(\n p => omitSpec.indexOf(p) === -1\n );\n if (bad.length > 0) {\n throw new Error(\n `Processing @omit for ${entity.kind} '${entity.name}' - '${bad.join(\n \",\"\n )}' must be omitted when '${READ}' is omitted. Add '${bad.join(\n \",\"\n )}' to the @omit clause, or use '@omit' to omit all actions.`\n );\n }\n }\n return omitSpec.indexOf(permission) >= 0;\n } else if (includeSpec) {\n if (includeSpec === true) {\n throw new Error(\n `Error when processing instructions for ${entity.kind} '${entity.name}' - @include should specify a list of actions`\n );\n }\n if (includeSpec.indexOf(READ) === -1) {\n const bad = PERMISSIONS_THAT_REQUIRE_READ.find(\n p => includeSpec.indexOf(p) >= 0\n );\n if (bad) {\n throw new Error(\n `Error when processing @include for ${entity.kind} '${entity.name}' - we currently don't support '${bad}' when '${READ}' is forbidden`\n );\n }\n }\n return includeSpec.indexOf(permission) === -1;\n } else {\n return false;\n }\n}\n"],"mappings":"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"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = parseIdentifier;
7
-
8
7
  function parseIdentifier(typeIdentifier) {
9
8
  const match = typeIdentifier.match(/^(?:([a-zA-Z0-9_]+)|"([^"]*)")\.(?:([a-zA-Z0-9_]+)|"([^"]*)")$/);
10
9
  if (!match) throw new Error(`Type identifier '${typeIdentifier}' is of the incorrect form.`);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/parseIdentifier.js"],"names":["parseIdentifier","typeIdentifier","match","Error","namespaceName","entityName"],"mappings":";;;;;;;AAAe,SAASA,eAAT,CAAyBC,cAAzB,EAAyC;AACtD,QAAMC,KAAK,GAAGD,cAAc,CAACC,KAAf,CACZ,gEADY,CAAd;AAIA,MAAI,CAACA,KAAL,EACE,MAAM,IAAIC,KAAJ,CACH,oBAAmBF,cAAe,6BAD/B,CAAN;AAIF,SAAO;AACLG,IAAAA,aAAa,EAAEF,KAAK,CAAC,CAAD,CAAL,IAAYA,KAAK,CAAC,CAAD,CAD3B;AAELG,IAAAA,UAAU,EAAEH,KAAK,CAAC,CAAD,CAAL,IAAYA,KAAK,CAAC,CAAD;AAFxB,GAAP;AAID","sourcesContent":["export default function parseIdentifier(typeIdentifier) {\n const match = typeIdentifier.match(\n /^(?:([a-zA-Z0-9_]+)|\"([^\"]*)\")\\.(?:([a-zA-Z0-9_]+)|\"([^\"]*)\")$/\n );\n\n if (!match)\n throw new Error(\n `Type identifier '${typeIdentifier}' is of the incorrect form.`\n );\n\n return {\n namespaceName: match[1] || match[2],\n entityName: match[3] || match[4],\n };\n}\n"],"file":"parseIdentifier.js"}
1
+ {"version":3,"file":"parseIdentifier.js","names":["parseIdentifier","typeIdentifier","match","Error","namespaceName","entityName"],"sources":["../src/parseIdentifier.js"],"sourcesContent":["export default function parseIdentifier(typeIdentifier) {\n const match = typeIdentifier.match(\n /^(?:([a-zA-Z0-9_]+)|\"([^\"]*)\")\\.(?:([a-zA-Z0-9_]+)|\"([^\"]*)\")$/\n );\n\n if (!match)\n throw new Error(\n `Type identifier '${typeIdentifier}' is of the incorrect form.`\n );\n\n return {\n namespaceName: match[1] || match[2],\n entityName: match[3] || match[4],\n };\n}\n"],"mappings":";;;;;;AAAe,SAASA,eAAeA,CAACC,cAAc,EAAE;EACtD,MAAMC,KAAK,GAAGD,cAAc,CAACC,KAAK,CAChC,gEACF,CAAC;EAED,IAAI,CAACA,KAAK,EACR,MAAM,IAAIC,KAAK,CACZ,oBAAmBF,cAAe,6BACrC,CAAC;EAEH,OAAO;IACLG,aAAa,EAAEF,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC;IACnCG,UAAU,EAAEH,KAAK,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC;EACjC,CAAC;AACH"}
@@ -4,40 +4,31 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = pgPrepareAndRun;
7
-
8
7
  var _crypto = require("crypto");
9
-
10
8
  var _lru = _interopRequireDefault(require("@graphile/lru"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
10
  const cacheSizeFromEnv = parseInt(process.env.POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE, 10);
15
11
  const POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE = !!cacheSizeFromEnv || cacheSizeFromEnv === 0 ? cacheSizeFromEnv : 100;
16
12
  let lastString;
17
13
  let lastHash;
18
-
19
14
  const hash = str => {
20
15
  if (str !== lastString) {
21
16
  lastString = str;
22
17
  lastHash = (0, _crypto.createHash)("sha1").update(str).digest("base64");
23
18
  }
24
-
25
19
  return lastHash;
26
20
  };
27
-
28
- function pgPrepareAndRun(pgClient, text, // eslint-disable-next-line flowtype/no-weak-types
21
+ function pgPrepareAndRun(pgClient, text,
22
+ // eslint-disable-next-line flowtype/no-weak-types
29
23
  values) {
30
24
  const connection = pgClient.connection;
31
-
32
25
  if (!values || POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE < 2 || !connection || !connection.parsedStatements) {
33
26
  return pgClient.query(text, values);
34
27
  } else {
35
28
  const name = hash(text);
36
-
37
29
  if (!connection._graphilePreparedStatementCache) {
38
30
  connection._graphilePreparedStatementCache = new _lru.default({
39
31
  maxLength: POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE,
40
-
41
32
  dispose(key) {
42
33
  if (connection.parsedStatements[key]) {
43
34
  pgClient.query(`deallocate ${pgClient.escapeIdentifier(key)}`).then(() => {
@@ -48,15 +39,12 @@ values) {
48
39
  });
49
40
  }
50
41
  }
51
-
52
42
  });
53
43
  }
54
-
55
44
  if (!connection._graphilePreparedStatementCache.get(name)) {
56
45
  // We're relying on dispose to clear out the old ones.
57
46
  connection._graphilePreparedStatementCache.set(name, true);
58
47
  }
59
-
60
48
  return pgClient.query({
61
49
  name,
62
50
  text,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/pgPrepareAndRun.js"],"names":["cacheSizeFromEnv","parseInt","process","env","POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE","lastString","lastHash","hash","str","update","digest","pgPrepareAndRun","pgClient","text","values","connection","parsedStatements","query","name","_graphilePreparedStatementCache","LRU","maxLength","dispose","key","escapeIdentifier","then","catch","e","console","error","get","set"],"mappings":";;;;;;;AACA;;AACA;;;;AAGA,MAAMA,gBAAgB,GAAGC,QAAQ,CAC/BC,OAAO,CAACC,GAAR,CAAYC,0CADmB,EAE/B,EAF+B,CAAjC;AAIA,MAAMA,0CAA0C,GAC9C,CAAC,CAACJ,gBAAF,IAAsBA,gBAAgB,KAAK,CAA3C,GAA+CA,gBAA/C,GAAkE,GADpE;AAGA,IAAIK,UAAJ;AACA,IAAIC,QAAJ;;AACA,MAAMC,IAAI,GAAIC,GAAD,IAAyB;AACpC,MAAIA,GAAG,KAAKH,UAAZ,EAAwB;AACtBA,IAAAA,UAAU,GAAGG,GAAb;AACAF,IAAAA,QAAQ,GAAG,wBAAW,MAAX,EAAmBG,MAAnB,CAA0BD,GAA1B,EAA+BE,MAA/B,CAAsC,QAAtC,CAAX;AACD;;AACD,SAAOJ,QAAP;AACD,CAND;;AAQe,SAASK,eAAT,CACbC,QADa,EAEbC,IAFa,EAGb;AACAC,MAJa,EAKb;AACA,QAAMC,UAAU,GAAGH,QAAQ,CAACG,UAA5B;;AACA,MACE,CAACD,MAAD,IACAV,0CAA0C,GAAG,CAD7C,IAEA,CAACW,UAFD,IAGA,CAACA,UAAU,CAACC,gBAJd,EAKE;AACA,WAAOJ,QAAQ,CAACK,KAAT,CAAeJ,IAAf,EAAqBC,MAArB,CAAP;AACD,GAPD,MAOO;AACL,UAAMI,IAAI,GAAGX,IAAI,CAACM,IAAD,CAAjB;;AACA,QAAI,CAACE,UAAU,CAACI,+BAAhB,EAAiD;AAC/CJ,MAAAA,UAAU,CAACI,+BAAX,GAA6C,IAAIC,YAAJ,CAAQ;AACnDC,QAAAA,SAAS,EAAEjB,0CADwC;;AAEnDkB,QAAAA,OAAO,CAACC,GAAD,EAAM;AACX,cAAIR,UAAU,CAACC,gBAAX,CAA4BO,GAA5B,CAAJ,EAAsC;AACpCX,YAAAA,QAAQ,CACLK,KADH,CACU,cAAaL,QAAQ,CAACY,gBAAT,CAA0BD,GAA1B,CAA+B,EADtD,EAEGE,IAFH,CAEQ,MAAM;AACV,qBAAOV,UAAU,CAACC,gBAAX,CAA4BO,GAA5B,CAAP;AACD,aAJH,EAKGG,KALH,CAKSC,CAAC,IAAI;AACV;AACAC,cAAAA,OAAO,CAACC,KAAR,CAAc,gCAAd,EAAgDF,CAAhD;AACD,aARH;AASD;AACF;;AAdkD,OAAR,CAA7C;AAgBD;;AACD,QAAI,CAACZ,UAAU,CAACI,+BAAX,CAA2CW,GAA3C,CAA+CZ,IAA/C,CAAL,EAA2D;AACzD;AACAH,MAAAA,UAAU,CAACI,+BAAX,CAA2CY,GAA3C,CAA+Cb,IAA/C,EAAqD,IAArD;AACD;;AACD,WAAON,QAAQ,CAACK,KAAT,CAAe;AACpBC,MAAAA,IADoB;AAEpBL,MAAAA,IAFoB;AAGpBC,MAAAA;AAHoB,KAAf,CAAP;AAKD;AACF","sourcesContent":["//@flow\nimport { createHash } from \"crypto\";\nimport LRU from \"@graphile/lru\";\nimport type { PoolClient } from \"pg\";\n\nconst cacheSizeFromEnv = parseInt(\n process.env.POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE,\n 10\n);\nconst POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE =\n !!cacheSizeFromEnv || cacheSizeFromEnv === 0 ? cacheSizeFromEnv : 100;\n\nlet lastString: string;\nlet lastHash: string;\nconst hash = (str: string): string => {\n if (str !== lastString) {\n lastString = str;\n lastHash = createHash(\"sha1\").update(str).digest(\"base64\");\n }\n return lastHash;\n};\n\nexport default function pgPrepareAndRun(\n pgClient: PoolClient,\n text: string,\n // eslint-disable-next-line flowtype/no-weak-types\n values: any\n) {\n const connection = pgClient.connection;\n if (\n !values ||\n POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE < 2 ||\n !connection ||\n !connection.parsedStatements\n ) {\n return pgClient.query(text, values);\n } else {\n const name = hash(text);\n if (!connection._graphilePreparedStatementCache) {\n connection._graphilePreparedStatementCache = new LRU({\n maxLength: POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE,\n dispose(key) {\n if (connection.parsedStatements[key]) {\n pgClient\n .query(`deallocate ${pgClient.escapeIdentifier(key)}`)\n .then(() => {\n delete connection.parsedStatements[key];\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.error(\"Error releasing prepared query\", e);\n });\n }\n },\n });\n }\n if (!connection._graphilePreparedStatementCache.get(name)) {\n // We're relying on dispose to clear out the old ones.\n connection._graphilePreparedStatementCache.set(name, true);\n }\n return pgClient.query({\n name,\n text,\n values,\n });\n }\n}\n"],"file":"pgPrepareAndRun.js"}
1
+ {"version":3,"file":"pgPrepareAndRun.js","names":["_crypto","require","_lru","_interopRequireDefault","obj","__esModule","default","cacheSizeFromEnv","parseInt","process","env","POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE","lastString","lastHash","hash","str","createHash","update","digest","pgPrepareAndRun","pgClient","text","values","connection","parsedStatements","query","name","_graphilePreparedStatementCache","LRU","maxLength","dispose","key","escapeIdentifier","then","catch","e","console","error","get","set"],"sources":["../src/pgPrepareAndRun.js"],"sourcesContent":["//@flow\nimport { createHash } from \"crypto\";\nimport LRU from \"@graphile/lru\";\nimport type { PoolClient } from \"pg\";\n\nconst cacheSizeFromEnv = parseInt(\n process.env.POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE,\n 10\n);\nconst POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE =\n !!cacheSizeFromEnv || cacheSizeFromEnv === 0 ? cacheSizeFromEnv : 100;\n\nlet lastString: string;\nlet lastHash: string;\nconst hash = (str: string): string => {\n if (str !== lastString) {\n lastString = str;\n lastHash = createHash(\"sha1\").update(str).digest(\"base64\");\n }\n return lastHash;\n};\n\nexport default function pgPrepareAndRun(\n pgClient: PoolClient,\n text: string,\n // eslint-disable-next-line flowtype/no-weak-types\n values: any\n) {\n const connection = pgClient.connection;\n if (\n !values ||\n POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE < 2 ||\n !connection ||\n !connection.parsedStatements\n ) {\n return pgClient.query(text, values);\n } else {\n const name = hash(text);\n if (!connection._graphilePreparedStatementCache) {\n connection._graphilePreparedStatementCache = new LRU({\n maxLength: POSTGRAPHILE_PREPARED_STATEMENT_CACHE_SIZE,\n dispose(key) {\n if (connection.parsedStatements[key]) {\n pgClient\n .query(`deallocate ${pgClient.escapeIdentifier(key)}`)\n .then(() => {\n delete connection.parsedStatements[key];\n })\n .catch(e => {\n // eslint-disable-next-line no-console\n console.error(\"Error releasing prepared query\", e);\n });\n }\n },\n });\n }\n if (!connection._graphilePreparedStatementCache.get(name)) {\n // We're relying on dispose to clear out the old ones.\n connection._graphilePreparedStatementCache.set(name, true);\n }\n return pgClient.query({\n name,\n text,\n values,\n });\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAgC,SAAAE,uBAAAC,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGhC,MAAMG,gBAAgB,GAAGC,QAAQ,CAC/BC,OAAO,CAACC,GAAG,CAACC,0CAA0C,EACtD,EACF,CAAC;AACD,MAAMA,0CAA0C,GAC9C,CAAC,CAACJ,gBAAgB,IAAIA,gBAAgB,KAAK,CAAC,GAAGA,gBAAgB,GAAG,GAAG;AAEvE,IAAIK,UAAkB;AACtB,IAAIC,QAAgB;AACpB,MAAMC,IAAI,GAAIC,GAAW,IAAa;EACpC,IAAIA,GAAG,KAAKH,UAAU,EAAE;IACtBA,UAAU,GAAGG,GAAG;IAChBF,QAAQ,GAAG,IAAAG,kBAAU,EAAC,MAAM,CAAC,CAACC,MAAM,CAACF,GAAG,CAAC,CAACG,MAAM,CAAC,QAAQ,CAAC;EAC5D;EACA,OAAOL,QAAQ;AACjB,CAAC;AAEc,SAASM,eAAeA,CACrCC,QAAoB,EACpBC,IAAY;AACZ;AACAC,MAAW,EACX;EACA,MAAMC,UAAU,GAAGH,QAAQ,CAACG,UAAU;EACtC,IACE,CAACD,MAAM,IACPX,0CAA0C,GAAG,CAAC,IAC9C,CAACY,UAAU,IACX,CAACA,UAAU,CAACC,gBAAgB,EAC5B;IACA,OAAOJ,QAAQ,CAACK,KAAK,CAACJ,IAAI,EAAEC,MAAM,CAAC;EACrC,CAAC,MAAM;IACL,MAAMI,IAAI,GAAGZ,IAAI,CAACO,IAAI,CAAC;IACvB,IAAI,CAACE,UAAU,CAACI,+BAA+B,EAAE;MAC/CJ,UAAU,CAACI,+BAA+B,GAAG,IAAIC,YAAG,CAAC;QACnDC,SAAS,EAAElB,0CAA0C;QACrDmB,OAAOA,CAACC,GAAG,EAAE;UACX,IAAIR,UAAU,CAACC,gBAAgB,CAACO,GAAG,CAAC,EAAE;YACpCX,QAAQ,CACLK,KAAK,CAAE,cAAaL,QAAQ,CAACY,gBAAgB,CAACD,GAAG,CAAE,EAAC,CAAC,CACrDE,IAAI,CAAC,MAAM;cACV,OAAOV,UAAU,CAACC,gBAAgB,CAACO,GAAG,CAAC;YACzC,CAAC,CAAC,CACDG,KAAK,CAACC,CAAC,IAAI;cACV;cACAC,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAEF,CAAC,CAAC;YACpD,CAAC,CAAC;UACN;QACF;MACF,CAAC,CAAC;IACJ;IACA,IAAI,CAACZ,UAAU,CAACI,+BAA+B,CAACW,GAAG,CAACZ,IAAI,CAAC,EAAE;MACzD;MACAH,UAAU,CAACI,+BAA+B,CAACY,GAAG,CAACb,IAAI,EAAE,IAAI,CAAC;IAC5D;IACA,OAAON,QAAQ,CAACK,KAAK,CAAC;MACpBC,IAAI;MACJL,IAAI;MACJC;IACF,CAAC,CAAC;EACJ;AACF"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var PageInfoStartEndCursor = function PageInfoStartEndCursor(builder) {
9
8
  builder.hook("GraphQLObjectType:fields", (fields, build, context) => {
10
9
  const {
@@ -16,11 +15,9 @@ var PageInfoStartEndCursor = function PageInfoStartEndCursor(builder) {
16
15
  Self,
17
16
  fieldWithHooks
18
17
  } = context;
19
-
20
18
  if (Self.name !== inflection.builtin("PageInfo")) {
21
19
  return fields;
22
20
  }
23
-
24
21
  const Cursor = getTypeByName("Cursor");
25
22
  return extend(fields, {
26
23
  startCursor: fieldWithHooks("startCursor", ({
@@ -52,6 +49,5 @@ var PageInfoStartEndCursor = function PageInfoStartEndCursor(builder) {
52
49
  }, `Adding startCursor/endCursor to ${Self.name}`);
53
50
  }, ["PageInfoStartEndCursor"], [], ["Cursor"]);
54
51
  };
55
-
56
52
  exports.default = PageInfoStartEndCursor;
57
53
  //# sourceMappingURL=PageInfoStartEndCursor.js.map