tamedevil 0.0.0-alpha.1 → 0.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # tamedevil
2
2
 
3
+ ## 0.0.0-alpha.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#370](https://github.com/benjie/postgraphile-private/pull/370)
8
+ [`339fe20d0`](https://github.com/benjie/postgraphile-private/commit/339fe20d0c6e8600d263ce8093cd85a6ea8adbbf)
9
+ Thanks [@benjie](https://github.com/benjie)! - Allow multiple instances of
10
+ pg-sql2 and tamedevil to help handle package manager shenanigans.
11
+
12
+ ## 0.0.0-alpha.2
13
+
14
+ ### Patch Changes
15
+
16
+ - [`87e6c65a7`](https://github.com/benjie/postgraphile-private/commit/87e6c65a7a687044895b3b6c9f131384984e7674)
17
+ Thanks [@benjie](https://github.com/benjie)! - Performance overhaul and new
18
+ caching functionality.
19
+
20
+ - [`7f857950a`](https://github.com/benjie/postgraphile-private/commit/7f857950a7e4ec763c936eb6bd1fb77824041d71)
21
+ Thanks [@benjie](https://github.com/benjie)! - Upgrade to the latest
22
+ TypeScript/tslib
23
+
24
+ - Updated dependencies
25
+ [[`98ae00f59`](https://github.com/benjie/postgraphile-private/commit/98ae00f59a8ab3edc5718ad8437a0dab734a7d69),
26
+ [`7f857950a`](https://github.com/benjie/postgraphile-private/commit/7f857950a7e4ec763c936eb6bd1fb77824041d71)]:
27
+ - @graphile/lru@5.0.0-alpha.2
28
+
3
29
  ## 0.0.0-alpha.1
4
30
 
5
31
  ### Patch Changes
package/README.md CHANGED
@@ -53,12 +53,12 @@ And please give some love to our featured sponsors 🤩:
53
53
 
54
54
  <table><tr>
55
55
  <td align="center"><a href="https://surge.io/"><img src="https://graphile.org/images/sponsors/surge.png" width="90" height="90" alt="Surge" /><br />Surge</a> *</td>
56
- <td align="center"><a href="https://www.netflix.com/"><img src="https://graphile.org/images/sponsors/Netflix.png" width="90" height="90" alt="Netflix" /><br />Netflix</a> *</td>
57
56
  <td align="center"><a href="https://www.the-guild.dev/"><img src="https://graphile.org/images/sponsors/theguild.png" width="90" height="90" alt="The Guild" /><br />The Guild</a> *</td>
57
+ <td align="center"><a href="https://dovetailapp.com/"><img src="https://graphile.org/images/sponsors/dovetail.png" width="90" height="90" alt="Dovetail" /><br />Dovetail</a> *</td>
58
58
  <td align="center"><a href="https://qwick.com/"><img src="https://graphile.org/images/sponsors/qwick.png" width="90" height="90" alt="Qwick" /><br />Qwick</a> *</td>
59
59
  </tr><tr>
60
- <td align="center"><a href="http://chads.website"><img src="https://graphile.org/images/sponsors/chadf.png" width="90" height="90" alt="Chad Furman" /><br />Chad Furman</a> *</td>
61
- <td align="center"><a href="https://dovetailapp.com/"><img src="https://graphile.org/images/sponsors/dovetail.png" width="90" height="90" alt="Dovetail" /><br />Dovetail</a> *</td>
60
+ <td align="center"><a href="https://www.netflix.com/"><img src="https://graphile.org/images/sponsors/Netflix.png" width="90" height="90" alt="Netflix" /><br />Netflix</a> *</td>
61
+ <td align="center"><a href=""><img src="https://graphile.org/images/sponsors/chadf.png" width="90" height="90" alt="Chad Furman" /><br />Chad Furman</a> *</td>
62
62
  <td align="center"><a href="https://www.enzuzo.com/"><img src="https://graphile.org/images/sponsors/enzuzo.png" width="90" height="90" alt="Enzuzo" /><br />Enzuzo</a> *</td>
63
63
  <td align="center"><a href="https://stellate.co/"><img src="https://graphile.org/images/sponsors/Stellate.png" width="90" height="90" alt="Stellate" /><br />Stellate</a> *</td>
64
64
  </tr></table>
package/dist/index.d.ts CHANGED
@@ -1,11 +1,4 @@
1
- /**
2
- * This is the secret to our safety; since this is a symbol it cannot be faked
3
- * in a JSON payload and it cannot be constructed with a new Symbol (even with
4
- * the same argument), so external data cannot make itself trusted.
5
- *
6
- * @internal
7
- */
8
- declare const $$type: unique symbol;
1
+ import { $$type } from "./thereCanBeOnlyOne.js";
9
2
  /**
10
3
  * Represents raw TE, the text will be output verbatim into the compiled code.
11
4
  */
@@ -69,6 +62,7 @@ declare function compile(fragment: TE): {
69
62
  [key: string]: any;
70
63
  };
71
64
  };
65
+ declare function cache(strings: TemplateStringsArray): TE;
72
66
  /**
73
67
  * Creates a TE node for a raw code string. Just plain ol‘ raw code - EXTREMELY
74
68
  * DANGEROUS.
@@ -189,6 +183,8 @@ declare function tmp(obj: TE, callback: (tmp: TE) => TE): TE;
189
183
  */
190
184
  declare function run<TResult>(fragment: TE): TResult;
191
185
  declare function run<TResult>(strings: TemplateStringsArray, ...values: TE[]): TResult;
186
+ declare function runInBatch<TResult>(fragment: TE, callback: (r: TResult) => void): void;
187
+ declare function batch(callback: () => void): void;
192
188
  /**
193
189
  * Join some TE items together, optionally separated by a string. Useful when
194
190
  * dealing with lists of TE nodes, for example a dynamic list of object
@@ -226,10 +222,11 @@ export declare class Idents {
226
222
  }
227
223
  declare const te: TamedEvil;
228
224
  export default te;
229
- export { compile, dangerousKey, dangerouslyIncludeRawCode, run as eval, get, identifier, isTE, join, lit, lit as literal, optionalGet, ref, run, set, subcomment, substring, te, tempVar, tmp, undefinedNode as undefined, };
225
+ export { batch, cache, compile, dangerousKey, dangerouslyIncludeRawCode, run as eval, get, identifier, isTE, join, lit, lit as literal, optionalGet, ref, run, runInBatch, set, subcomment, substring, te, tempVar, tmp, undefinedNode as undefined, };
230
226
  export interface TamedEvil {
231
227
  (strings: TemplateStringsArray, ...values: Array<TE>): TE;
232
228
  te: TamedEvil;
229
+ cache: typeof cache;
233
230
  ref: typeof ref;
234
231
  reference: typeof ref;
235
232
  lit: typeof lit;
@@ -252,6 +249,8 @@ export interface TamedEvil {
252
249
  <TResult>(fragment: TE): TResult;
253
250
  <TResult>(strings: TemplateStringsArray, ...values: TE[]): TResult;
254
251
  };
252
+ runInBatch: typeof runInBatch;
253
+ batch: typeof batch;
255
254
  compile: typeof compile;
256
255
  indent: typeof indent;
257
256
  indentIf: typeof indentIf;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.undefined = exports.tmp = exports.tempVar = exports.te = exports.substring = exports.subcomment = exports.set = exports.run = exports.ref = exports.optionalGet = exports.literal = exports.lit = exports.join = exports.isTE = exports.identifier = exports.get = exports.eval = exports.dangerouslyIncludeRawCode = exports.dangerousKey = exports.compile = exports.Idents = exports.isSafeObjectPropertyName = exports.toJSON = exports.stringifyString = void 0;
4
- const tslib_1 = require("tslib");
5
- const lru_1 = tslib_1.__importDefault(require("@graphile/lru"));
3
+ exports.undefined = exports.tmp = exports.tempVar = exports.te = exports.substring = exports.subcomment = exports.set = exports.runInBatch = exports.run = exports.ref = exports.optionalGet = exports.literal = exports.lit = exports.join = exports.isTE = exports.identifier = exports.get = exports.eval = exports.dangerouslyIncludeRawCode = exports.dangerousKey = exports.compile = exports.cache = exports.batch = exports.Idents = exports.isSafeObjectPropertyName = exports.toJSON = exports.stringifyString = void 0;
6
4
  const reservedWords_js_1 = require("./reservedWords.js");
5
+ const thereCanBeOnlyOne_js_1 = require("./thereCanBeOnlyOne.js");
7
6
  /**
8
7
  * For compatibility with graphile-export
9
8
  */
@@ -22,53 +21,24 @@ function exportAs(thing, exportName) {
22
21
  return thing;
23
22
  }
24
23
  const isDev = typeof process !== "undefined" && process.env.GRAPHILE_ENV === "development";
25
- /**
26
- * This is the secret to our safety; since this is a symbol it cannot be faked
27
- * in a JSON payload and it cannot be constructed with a new Symbol (even with
28
- * the same argument), so external data cannot make itself trusted.
29
- *
30
- * @internal
31
- */
32
- const $$type = Symbol("tamedevil-type");
33
- /**
34
- * This helps us to avoid GC overhead of allocating new raw nodes all the time
35
- * when they're likely to be the same values over and over. The average raw
36
- * string is likely to be around 20 bytes; allowing for 50 bytes once this has
37
- * been turned into an object, 10000 would mean 500kB which seems an acceptable
38
- * amount of memory to consume for this.
39
- */
40
- const CACHE_RAW_NODES = new lru_1.default({ maxLength: 10000 });
41
- const CACHE_MAX_ENTRY_LENGTH = 50;
42
- function makeRawNode(text, exportName) {
43
- // Don't use the cache for longer texts
44
- if (text.length > CACHE_MAX_ENTRY_LENGTH && exportName === undefined) {
45
- return Object.freeze({
46
- [$$type]: "RAW",
47
- t: text,
48
- });
49
- }
50
- const n = CACHE_RAW_NODES.get(text);
51
- if (n) {
52
- return n;
53
- }
54
- if (typeof text !== "string") {
55
- throw new Error(`[tamedevil] Invalid argument to makeRawNode - expected string, but received '${String(text)}'`);
56
- }
24
+ function makeRawNode(text) {
25
+ return {
26
+ [thereCanBeOnlyOne_js_1.$$type]: "RAW",
27
+ t: text,
28
+ };
29
+ }
30
+ function makeExportedRawNode(text, exportName) {
57
31
  const newNode = {
58
- [$$type]: "RAW",
32
+ [thereCanBeOnlyOne_js_1.$$type]: "RAW",
59
33
  t: text,
60
34
  };
61
- if (exportName) {
62
- exportAs(newNode, exportName);
63
- }
64
- Object.freeze(newNode);
65
- CACHE_RAW_NODES.set(text, newNode);
35
+ exportAs(newNode, exportName);
66
36
  return newNode;
67
37
  }
68
38
  // Simple function to help V8 optimize it.
69
39
  function makeRefNode(rawValue, name) {
70
40
  return Object.freeze({
71
- [$$type]: "REF",
41
+ [thereCanBeOnlyOne_js_1.$$type]: "REF",
72
42
  v: rawValue,
73
43
  n: name,
74
44
  });
@@ -76,21 +46,21 @@ function makeRefNode(rawValue, name) {
76
46
  // Simple function to help V8 optimize it.
77
47
  function makeTemporaryVariableNode(symbol) {
78
48
  return Object.freeze({
79
- [$$type]: "VARIABLE",
49
+ [thereCanBeOnlyOne_js_1.$$type]: "VARIABLE",
80
50
  s: symbol,
81
51
  });
82
52
  }
83
53
  // Simple function to help V8 optimize it.
84
54
  function makeIndentNode(content) {
85
55
  return Object.freeze({
86
- [$$type]: "INDENT",
87
- c: content[$$type] === "QUERY" ? content : makeQueryNode([content]),
56
+ [thereCanBeOnlyOne_js_1.$$type]: "INDENT",
57
+ c: content[thereCanBeOnlyOne_js_1.$$type] === "QUERY" ? content : makeQueryNode([content]),
88
58
  });
89
59
  }
90
60
  // Simple function to help V8 optimize it.
91
61
  function makeQueryNode(nodes) {
92
62
  return Object.freeze({
93
- [$$type]: "QUERY",
63
+ [thereCanBeOnlyOne_js_1.$$type]: "QUERY",
94
64
  n: nodes,
95
65
  });
96
66
  }
@@ -100,7 +70,7 @@ function makeQueryNode(nodes) {
100
70
  function isTE(node) {
101
71
  return (typeof node === "object" &&
102
72
  node !== null &&
103
- typeof node[$$type] === "string");
73
+ typeof node[thereCanBeOnlyOne_js_1.$$type] === "string");
104
74
  }
105
75
  exports.isTE = isTE;
106
76
  function enforceValidNode(node, where) {
@@ -109,6 +79,93 @@ function enforceValidNode(node, where) {
109
79
  }
110
80
  throw new Error(`[tamedevil] Invalid expression. Expected an TE item${where ? ` at ${where}` : ""} but received '${String(node)}'. This may mean that there is an issue in the TE expression where a dynamic value was not escaped via 'te.ref(...)', an embedded string wasn't wrapped with 'te.string(...)', or a TE expression was added without using the \`te\` tagged template literal.`);
111
81
  }
82
+ function findAvailableName(refs, suggestedName) {
83
+ if (!(suggestedName in refs)) {
84
+ return suggestedName;
85
+ }
86
+ for (let i = 0; i < 1000000; i++) {
87
+ const name = suggestedName + i;
88
+ if (!(name in refs)) {
89
+ return name;
90
+ }
91
+ }
92
+ throw new Error("Failed to find an available variable name to use");
93
+ }
94
+ const makeRef = (refs, refMap, value, suggestedName) => {
95
+ const existingIdentifier = refMap.get(value);
96
+ if (existingIdentifier) {
97
+ return existingIdentifier;
98
+ }
99
+ const refCount = refMap.size + 1;
100
+ // Arbitrary
101
+ if (refCount > 65535) {
102
+ throw new Error("[tamedevil] This TE statement would contain too many placeholders; tamedevil supports at most 65535 placeholders. To solve this, consider passing multiple values in using a single array or object.");
103
+ }
104
+ const identifier = suggestedName
105
+ ? findAvailableName(refs, suggestedName)
106
+ : `_$$_ref_${refCount}`;
107
+ refMap.set(value, identifier);
108
+ refs[identifier] = value;
109
+ return identifier;
110
+ };
111
+ const getVar = (varMap, sym) => {
112
+ const existing = varMap.get(sym);
113
+ if (existing) {
114
+ return existing;
115
+ }
116
+ const tmpCounter = varMap.size + 1;
117
+ const varName = `_$_tmp${tmpCounter}`;
118
+ varMap.set(sym, varName);
119
+ return varName;
120
+ };
121
+ function serialize(item, refs, refMap, varMap, indent = 0) {
122
+ let str = "";
123
+ if (item == null) {
124
+ enforceValidNode(item);
125
+ }
126
+ switch (item[thereCanBeOnlyOne_js_1.$$type]) {
127
+ case "QUERY": {
128
+ for (const listItem of item.n) {
129
+ str += serialize(listItem, refs, refMap, varMap, indent);
130
+ }
131
+ break;
132
+ }
133
+ case "RAW": {
134
+ if (item.t === "") {
135
+ // No need to add blank raw text!
136
+ break;
137
+ }
138
+ // IMPORTANT: this **must not** mangle primitives. Fortunately they're all single line so it should be fine.
139
+ str += isDev ? item.t.replace(/\n/g, "\n" + " ".repeat(indent)) : item.t;
140
+ break;
141
+ }
142
+ case "REF": {
143
+ const identifier = makeRef(refs, refMap, item.v, item.n);
144
+ str += identifier;
145
+ break;
146
+ }
147
+ case "VARIABLE": {
148
+ const identifier = getVar(varMap, item.s);
149
+ str += identifier;
150
+ break;
151
+ }
152
+ case "INDENT": {
153
+ if (!isDev) {
154
+ throw new Error("INDENT nodes only allowed in development mode");
155
+ }
156
+ str += "\n" + " ".repeat(indent + 1);
157
+ str += serialize(item.c, refs, refMap, varMap, indent + 1);
158
+ str += "\n" + " ".repeat(indent);
159
+ break;
160
+ }
161
+ default: {
162
+ const never = item;
163
+ // This cannot happen
164
+ throw new Error(`Unsupported node found in TE: ${String(enforceValidNode(never))}`);
165
+ }
166
+ }
167
+ return str;
168
+ }
112
169
  /**
113
170
  * Accepts an te`...` expression and compiles it out to the function body
114
171
  * `string` and the `refs` that need to be passed via the closure.
@@ -120,96 +177,18 @@ function compile(fragment) {
120
177
  * time.
121
178
  */
122
179
  const refs = Object.create(null);
123
- let refCount = 0;
124
180
  const refMap = new Map();
125
- const makeRef = (value, suggestedName) => {
126
- const existingIdentifier = refMap.get(value);
127
- if (existingIdentifier) {
128
- return existingIdentifier;
129
- }
130
- refCount++;
131
- // Arbitrary
132
- if (refCount > 65535) {
133
- throw new Error("[tamedevil] This TE statement would contain too many placeholders; tamedevil supports at most 65535 placeholders. To solve this, consider passing multiple values in using a single array or object.");
134
- }
135
- const identifier = suggestedName ?? `_$$_ref_${refCount}`;
136
- refMap.set(value, identifier);
137
- refs[identifier] = value;
138
- return identifier;
139
- };
140
181
  const varMap = new Map();
141
- let tmpCounter = 0;
142
- const getVar = (sym) => {
143
- const existing = varMap.get(sym);
144
- if (existing) {
145
- return existing;
146
- }
147
- const varName = `_$_tmp${tmpCounter++}`;
148
- varMap.set(sym, varName);
149
- return varName;
150
- };
151
- const variables = [];
152
- function print(untrustedInput, indent = 0) {
153
- /**
154
- * Join this to generate the TE string
155
- */
156
- const teFragments = [];
157
- const trustedInput = enforceValidNode(untrustedInput, ``);
158
- const items = trustedInput[$$type] === "QUERY"
159
- ? expandQueryNodes(trustedInput)
160
- : [trustedInput];
161
- const itemCount = items.length;
162
- for (let itemIndex = 0; itemIndex < itemCount; itemIndex++) {
163
- const item = enforceValidNode(items[itemIndex], `item ${itemIndex}`);
164
- switch (item[$$type]) {
165
- case "RAW": {
166
- if (item.t === "") {
167
- // No need to add blank raw text!
168
- break;
169
- }
170
- // IMPORTANT: this **must not** mangle primitives. Fortunately they're all single line so it should be fine.
171
- teFragments.push(isDev ? item.t.replace(/\n/g, "\n" + " ".repeat(indent)) : item.t);
172
- break;
173
- }
174
- case "REF": {
175
- const identifier = makeRef(item.v, item.n);
176
- teFragments.push(identifier);
177
- if (item.n != null && identifier !== item.n) {
178
- variables.push(`const ${item.n} = ${identifier};`);
179
- }
180
- break;
181
- }
182
- case "VARIABLE": {
183
- const identifier = getVar(item.s);
184
- teFragments.push(identifier);
185
- break;
186
- }
187
- case "INDENT": {
188
- if (!isDev) {
189
- throw new Error("INDENT nodes only allowed in development mode");
190
- }
191
- teFragments.push("\n" +
192
- " ".repeat(indent + 1) +
193
- print(item.c, indent + 1) +
194
- "\n" +
195
- " ".repeat(indent));
196
- break;
197
- }
198
- default: {
199
- const never = item;
200
- // This cannot happen
201
- throw new Error(`Unsupported node found in TE: ${String(never)}`);
202
- }
203
- }
204
- }
205
- return teFragments.join("");
206
- }
207
- let str = print(fragment);
182
+ /**
183
+ * Join this to generate the TE string
184
+ */
185
+ let str = serialize(fragment, refs, refMap, varMap);
186
+ let variables = "";
208
187
  for (const varName of varMap.values()) {
209
- variables.push(`let ${varName};`);
188
+ variables = variables + `let ${varName};\n`;
210
189
  }
211
190
  if (variables.length > 0) {
212
- str = variables.join("\n") + "\n" + str;
191
+ str = variables + "\n" + str;
213
192
  }
214
193
  const string = isDev ? str.replace(/\n\s*\n/g, "\n") : str;
215
194
  return {
@@ -218,8 +197,6 @@ function compile(fragment) {
218
197
  };
219
198
  }
220
199
  exports.compile = compile;
221
- // LRU not necessary
222
- const CACHE_SIMPLE_FRAGMENTS = new Map();
223
200
  /**
224
201
  * A template string tag function that creates a `TE` query out of some strings and
225
202
  * some TE values. Use this to prepare all dynamically executed code code
@@ -238,49 +215,57 @@ const teBase = function te(strings, ...values) {
238
215
  throw new Error("[tamedevil] te should be used as a template literal, not a function call.");
239
216
  }
240
217
  const stringsLength = strings.length;
241
- const first = strings[0];
242
218
  // Reduce memory churn with a cache
243
219
  if (stringsLength === 1) {
220
+ const first = strings[0];
244
221
  if (first === "") {
245
222
  return blankNode;
246
223
  }
247
- let node = CACHE_SIMPLE_FRAGMENTS.get(first);
248
- if (!node) {
249
- node = makeRawNode(first);
250
- CACHE_SIMPLE_FRAGMENTS.set(first, node);
224
+ else if (first === "undefined") {
225
+ return undefinedNode;
251
226
  }
252
- return node;
227
+ return makeRawNode(first);
253
228
  }
254
229
  // Special case te`${...}` - just return the node directly
255
230
  if (stringsLength === 2 && strings[0] === "" && strings[1] === "") {
256
- return enforceValidNode(values[0]);
231
+ const v = values[0];
232
+ return v[thereCanBeOnlyOne_js_1.$$type] !== undefined ? v : enforceValidNode(v);
257
233
  }
258
234
  const items = [];
235
+ let lastRawNode = null;
259
236
  let currentText = "";
237
+ const addText = () => {
238
+ if (lastRawNode === null || lastRawNode.t !== currentText) {
239
+ lastRawNode = makeRawNode(currentText);
240
+ }
241
+ items.push(lastRawNode);
242
+ currentText = "";
243
+ };
260
244
  const finalStringIndex = stringsLength - 1;
261
245
  for (let i = 0; i < stringsLength; i++) {
262
246
  const text = strings[i];
263
- if (typeof text !== "string") {
264
- throw new Error("[tamedevil] te must be invoked as a template literal, not a function call.");
265
- }
266
247
  currentText += text;
267
- if (i < finalStringIndex) {
268
- const valid = enforceValidNode(values[i], `template literal placeholder ${i}`);
269
- if (valid[$$type] === "RAW") {
248
+ if (i !== finalStringIndex) {
249
+ const v = values[i];
250
+ const valid = v[thereCanBeOnlyOne_js_1.$$type] !== undefined
251
+ ? v
252
+ : enforceValidNode(v, `literal placeholder ${i}`);
253
+ if (valid[thereCanBeOnlyOne_js_1.$$type] === "RAW") {
254
+ lastRawNode = valid;
270
255
  currentText += valid.t;
271
256
  }
272
- else if (valid[$$type] === "QUERY") {
273
- const nodes = expandQueryNodes(valid);
257
+ else if (valid[thereCanBeOnlyOne_js_1.$$type] === "QUERY") {
258
+ const nodes = valid.n;
274
259
  const nodeCount = nodes.length;
275
260
  for (let nodeIndex = 0; nodeIndex < nodeCount; nodeIndex++) {
276
261
  const node = nodes[nodeIndex];
277
- if (node[$$type] === "RAW") {
262
+ if (node[thereCanBeOnlyOne_js_1.$$type] === "RAW") {
263
+ lastRawNode = node;
278
264
  currentText += node.t;
279
265
  }
280
266
  else {
281
267
  if (currentText !== "") {
282
- items.push(makeRawNode(currentText));
283
- currentText = "";
268
+ /*#__INLINE__*/ addText();
284
269
  }
285
270
  items.push(node);
286
271
  }
@@ -288,19 +273,31 @@ const teBase = function te(strings, ...values) {
288
273
  }
289
274
  else {
290
275
  if (currentText !== "") {
291
- items.push(makeRawNode(currentText));
292
- currentText = "";
276
+ /*#__INLINE__*/ addText();
293
277
  }
294
278
  items.push(valid);
295
279
  }
296
280
  }
297
281
  }
298
282
  if (currentText !== "") {
299
- items.push(makeRawNode(currentText));
300
- currentText = "";
283
+ /*#__INLINE__*/ addText();
301
284
  }
302
285
  return items.length === 1 ? items[0] : makeQueryNode(items);
303
286
  };
287
+ const teCacheCache = Object.create(null);
288
+ function cache(strings) {
289
+ if (strings.length !== 1) {
290
+ throw new Error(`te.cache can currently only be used with a static string`);
291
+ }
292
+ const str = strings[0];
293
+ const existing = teCacheCache[str];
294
+ if (existing)
295
+ return existing;
296
+ const node = makeRawNode(str);
297
+ teCacheCache[str] = node;
298
+ return node;
299
+ }
300
+ exports.cache = cache;
304
301
  let rawWarningOutput = false;
305
302
  /**
306
303
  * Creates a TE node for a raw code string. Just plain ol‘ raw code - EXTREMELY
@@ -345,8 +342,8 @@ function ref(val, name) {
345
342
  }
346
343
  }
347
344
  exports.ref = ref;
348
- const blankNode = makeRawNode(``, "blank");
349
- const undefinedNode = makeRawNode(`undefined`, "undefined");
345
+ const blankNode = makeExportedRawNode(``, "blank");
346
+ const undefinedNode = makeExportedRawNode(`undefined`, "undefined");
350
347
  exports.undefined = undefinedNode;
351
348
  /**
352
349
  * A regexp that matches the first character that might need escaping in a JSON
@@ -601,9 +598,11 @@ function canAccessViaDot(str) {
601
598
  function get(key) {
602
599
  return typeof key === "string" && canAccessViaDot(key)
603
600
  ? // ._mySimpleProperty
604
- te `.${makeRawNode(key)}`
601
+ makeRawNode(`.${key}`)
605
602
  : // ["@@meaning"]
606
- te `[${te.lit(key)}]`;
603
+ typeof key === "string" || (typeof key === "number" && Number.isFinite(key))
604
+ ? makeRawNode(`[${(0, exports.toJSON)(key)}]`)
605
+ : te `[${te.lit(key)}]`;
607
606
  }
608
607
  exports.get = get;
609
608
  /**
@@ -616,9 +615,11 @@ exports.get = get;
616
615
  function optionalGet(key) {
617
616
  return typeof key === "string" && canAccessViaDot(key)
618
617
  ? // ?._mySimpleProperty
619
- te `?.${makeRawNode(key)}`
618
+ makeRawNode(`?.${key}`)
620
619
  : // ?.["@@meaning"]
621
- te `?.[${te.lit(key)}]`;
620
+ typeof key === "string" || (typeof key === "number" && Number.isFinite(key))
621
+ ? makeRawNode(`?.[${(0, exports.toJSON)(key)}]`)
622
+ : te `?.[${te.lit(key)}]`;
622
623
  }
623
624
  exports.optionalGet = optionalGet;
624
625
  // TODO: rename this. 'leftSet'? 'leftAccess'? 'safeAccess'?
@@ -639,9 +640,11 @@ function set(key, hasNullPrototype = false) {
639
640
  }
640
641
  return typeof key === "string" && canAccessViaDot(key)
641
642
  ? // ._mySimpleProperty
642
- te `.${makeRawNode(key)}`
643
+ makeRawNode(`.${key}`)
643
644
  : // ["@@meaning"]
644
- te `[${te.lit(key)}]`;
645
+ typeof key === "string" || (typeof key === "number" && Number.isFinite(key))
646
+ ? makeRawNode(`[${(0, exports.toJSON)(key)}]`)
647
+ : te `[${te.lit(key)}]`;
645
648
  }
646
649
  exports.set = set;
647
650
  /**
@@ -658,7 +661,7 @@ exports.tempVar = tempVar;
658
661
  * @experimental
659
662
  */
660
663
  function tmp(obj, callback) {
661
- const trustedObj = enforceValidNode(obj);
664
+ const trustedObj = obj[thereCanBeOnlyOne_js_1.$$type] !== undefined ? obj : enforceValidNode(obj);
662
665
  // ENHANCEMENT: we should be able to reuse these tempvars between tmp calls
663
666
  // that aren't nested (or are nested at the same level).
664
667
  const varName = te.tempVar();
@@ -672,10 +675,15 @@ function run(fragmentOrStrings, ...values) {
672
675
  if (values.length > 0) {
673
676
  throw new Error("Invalid call to `te.run`");
674
677
  }
675
- const fragment = enforceValidNode(fragmentOrStrings);
678
+ const fragment = fragmentOrStrings[thereCanBeOnlyOne_js_1.$$type] !== undefined
679
+ ? fragmentOrStrings
680
+ : enforceValidNode(fragmentOrStrings);
676
681
  const compiled = compile(fragment);
677
682
  const argNames = Object.keys(compiled.refs);
678
683
  const argValues = Object.values(compiled.refs);
684
+ if (isDev && activeBatch) {
685
+ throw new Error(`te.run called, but batch is active - recommend you use runInBatch`);
686
+ }
679
687
  try {
680
688
  return newFunction(...argNames, compiled.string)(...argValues);
681
689
  }
@@ -690,6 +698,37 @@ function run(fragmentOrStrings, ...values) {
690
698
  }
691
699
  exports.eval = run;
692
700
  exports.run = run;
701
+ let activeBatch = null;
702
+ function runInBatch(fragment, callback) {
703
+ if (!activeBatch) {
704
+ throw new Error(`te.runInBatch failed - there's no active batch`);
705
+ }
706
+ activeBatch.push({ fragment, callback });
707
+ }
708
+ exports.runInBatch = runInBatch;
709
+ function batch(callback) {
710
+ if (activeBatch) {
711
+ throw new Error(`te.batch failed - there's already a batch in progress`);
712
+ }
713
+ let batch;
714
+ try {
715
+ activeBatch = [];
716
+ callback();
717
+ batch = activeBatch;
718
+ }
719
+ finally {
720
+ activeBatch = null;
721
+ }
722
+ if (batch.length === 0) {
723
+ return;
724
+ }
725
+ const finalCode = te `return [\n${te.join(batch.map((entry) => entry.fragment), ",\n")}\n];`;
726
+ const result = te.run(finalCode);
727
+ for (let i = 0, l = batch.length; i < l; i++) {
728
+ batch[i].callback(result[i]);
729
+ }
730
+ }
731
+ exports.batch = batch;
693
732
  /** Because `new Function` retains the scope, we do it at top level to avoid capturing extra values */
694
733
  function newFunction(...args) {
695
734
  return new Function(...args);
@@ -712,7 +751,9 @@ function join(items, separator = "") {
712
751
  }
713
752
  else if (items.length === 1) {
714
753
  const rawNode = items[0];
715
- const node = enforceValidNode(rawNode, `join item ${0}`);
754
+ const node = rawNode[thereCanBeOnlyOne_js_1.$$type] !== undefined
755
+ ? rawNode
756
+ : enforceValidNode(rawNode, `join item ${0}`);
716
757
  return node;
717
758
  }
718
759
  const hasSeparator = separator.length > 0;
@@ -720,14 +761,16 @@ function join(items, separator = "") {
720
761
  const currentItems = [];
721
762
  for (let i = 0, l = items.length; i < l; i++) {
722
763
  const rawNode = items[i];
723
- const node = enforceValidNode(rawNode, `join item ${i}`);
764
+ const node = rawNode[thereCanBeOnlyOne_js_1.$$type] !== undefined
765
+ ? rawNode
766
+ : enforceValidNode(rawNode, `join item ${i}`);
724
767
  const addSeparator = i > 0 && hasSeparator;
725
768
  if (addSeparator) {
726
769
  currentText += separator;
727
770
  }
728
- if (node[$$type] === "QUERY") {
729
- for (const innerNode of expandQueryNodes(node)) {
730
- if (innerNode[$$type] === "RAW") {
771
+ if (node[thereCanBeOnlyOne_js_1.$$type] === "QUERY") {
772
+ for (const innerNode of node.n) {
773
+ if (innerNode[thereCanBeOnlyOne_js_1.$$type] === "RAW") {
731
774
  currentText += innerNode.t;
732
775
  }
733
776
  else {
@@ -739,7 +782,7 @@ function join(items, separator = "") {
739
782
  }
740
783
  }
741
784
  }
742
- else if (node[$$type] === "RAW") {
785
+ else if (node[thereCanBeOnlyOne_js_1.$$type] === "RAW") {
743
786
  currentText += node.t;
744
787
  }
745
788
  else {
@@ -759,14 +802,12 @@ function join(items, separator = "") {
759
802
  : makeQueryNode(currentItems);
760
803
  }
761
804
  exports.join = join;
762
- /** @internal */
763
- function expandQueryNodes(node) {
764
- return node.n;
765
- }
766
805
  function indent(fragmentOrStrings, ...values) {
767
806
  const fragment = "raw" in fragmentOrStrings
768
807
  ? te(fragmentOrStrings, ...values)
769
- : enforceValidNode(fragmentOrStrings);
808
+ : fragmentOrStrings[thereCanBeOnlyOne_js_1.$$type] !== undefined
809
+ ? fragmentOrStrings
810
+ : enforceValidNode(fragmentOrStrings);
770
811
  if (!isDev) {
771
812
  return fragment;
772
813
  }
@@ -777,7 +818,7 @@ function indent(fragmentOrStrings, ...values) {
777
818
  * node, otherwise it will be returned verbatim.
778
819
  */
779
820
  function indentIf(condition, fragment) {
780
- const trusted = enforceValidNode(fragment);
821
+ const trusted = fragment[thereCanBeOnlyOne_js_1.$$type] !== undefined ? fragment : enforceValidNode(fragment);
781
822
  return isDev && condition ? makeIndentNode(trusted) : trusted;
782
823
  }
783
824
  /**
@@ -787,8 +828,10 @@ function indentIf(condition, fragment) {
787
828
  * @internal
788
829
  */
789
830
  class Idents {
790
- // Initialized with forbidden words
791
- idents = new Set(reservedWords_js_1.reservedWords);
831
+ constructor() {
832
+ // Initialized with forbidden words
833
+ this.idents = new Set(reservedWords_js_1.reservedWords);
834
+ }
792
835
  /**
793
836
  * Don't allow using these identifiers (presumably because they're already in use).
794
837
  */
@@ -797,9 +840,10 @@ class Idents {
797
840
  this.idents.add(identifier);
798
841
  }
799
842
  }
843
+ // TODO: we need a proper understanding of lexical scope so we can generate truly safe identifiers
800
844
  makeSafeIdentifier(str) {
801
845
  const { idents } = this;
802
- const safe = str.replace(/[^a-zA-Z0-9_$]+/g, "").replace(/_+/, "_");
846
+ const safe = "i_" + str.replace(/[^a-zA-Z0-9_$]+/g, "").replace(/_+/, "_");
803
847
  let ident = undefined;
804
848
  for (let i = 1; i < 10000; i++) {
805
849
  const val = safe + (i > 1 ? String(i) : "");
@@ -821,6 +865,7 @@ exports.te = te;
821
865
  exports.default = te;
822
866
  const attributes = {
823
867
  te,
868
+ cache,
824
869
  ref,
825
870
  reference: ref,
826
871
  lit,
@@ -837,6 +882,8 @@ const attributes = {
837
882
  tempVar,
838
883
  run,
839
884
  eval: run,
885
+ runInBatch,
886
+ batch,
840
887
  compile,
841
888
  indent,
842
889
  indentIf,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This is the secret to our safety; since this is a symbol it cannot be faked
3
+ * in a JSON payload or other user-provided data, so external data cannot make
4
+ * itself trusted.
5
+ *
6
+ * @internal
7
+ */
8
+ export declare const $$type: unique symbol;
9
+ //# sourceMappingURL=thereCanBeOnlyOne.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thereCanBeOnlyOne.d.ts","sourceRoot":"","sources":["../src/thereCanBeOnlyOne.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAiD,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.$$type = void 0;
4
+ /** IMPORTANT: bump this on incompatible changes to this module */
5
+ const revision = 1;
6
+ /**
7
+ * This is the secret to our safety; since this is a symbol it cannot be faked
8
+ * in a JSON payload or other user-provided data, so external data cannot make
9
+ * itself trusted.
10
+ *
11
+ * @internal
12
+ */
13
+ exports.$$type = Symbol.for(`tamedevil-type-${revision}`);
14
+ //# sourceMappingURL=thereCanBeOnlyOne.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thereCanBeOnlyOne.js","sourceRoot":"","sources":["../src/thereCanBeOnlyOne.ts"],"names":[],"mappings":";;;AAAA,kEAAkE;AAClE,MAAM,QAAQ,GAAG,CAAC,CAAC;AAEnB;;;;;;GAMG;AACU,QAAA,MAAM,GAAkB,MAAM,CAAC,GAAG,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tamedevil",
3
- "version": "0.0.0-alpha.1",
3
+ "version": "0.0.0-alpha.3",
4
4
  "description": "Build and evaluate JavaScript strings safely via tagged template literals",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -41,11 +41,11 @@
41
41
  "jest": "^28.1.3",
42
42
  "markdown-doctest": "^1.1.0",
43
43
  "ts-node": "^10.9.1",
44
- "typescript": "^5.0.0-beta"
44
+ "typescript": "^5.0.4"
45
45
  },
46
46
  "dependencies": {
47
- "@graphile/lru": "^5.0.0-alpha.1",
48
- "tslib": "^2.4.0"
47
+ "@graphile/lru": "^5.0.0-alpha.2",
48
+ "tslib": "^2.5.0"
49
49
  },
50
50
  "files": [
51
51
  "dist"