@algorandfoundation/algokit-client-generator 4.0.0-beta.6 → 4.0.0-beta.7

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/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "**"
7
7
  ],
8
8
  "name": "@algorandfoundation/algokit-client-generator",
9
- "version": "4.0.0-beta.6",
9
+ "version": "4.0.0-beta.7",
10
10
  "description": "Generates a TypeScript client for interacting with, and deploying ARC-0032 smart contracts on the Algorand Blockchain.",
11
11
  "module": "index.mjs",
12
12
  "private": false,
@@ -26,10 +26,10 @@
26
26
  "rollup": "^4.22.5"
27
27
  },
28
28
  "dependencies": {
29
- "@algorandfoundation/algokit-utils": "^7.0.0-beta.18",
29
+ "@algorandfoundation/algokit-utils": "^7.0.0-beta.20",
30
30
  "algosdk": "^2.7.0",
31
31
  "chalk": "^4.1.2",
32
- "change-case": "^4.1.2",
32
+ "change-case": "^5.4.4",
33
33
  "commander": "^11.1.0",
34
34
  "jsonschema": "^1.4.1"
35
35
  },
@@ -4,21 +4,26 @@ var changeCase = require('change-case');
4
4
 
5
5
  const replaceInvalidWithUnderscore = (value) => value.replace(/[^a-z0-9_$]+/gi, '_');
6
6
  const escapeQuotes = (value) => value.replace(/['"]/g, (val) => `\\${val}`);
7
+ const removeEnclosingQuotes = (value) => value.replace(/^"|"$/g, '');
7
8
  const defaultSanitiser = {
8
9
  makeSafePropertyIdentifier(value) {
9
- return changeCase.camelCase(replaceInvalidWithUnderscore(value));
10
+ const options = value.startsWith('_') ? { prefixCharacters: '_' } : {};
11
+ return changeCase.camelCase(replaceInvalidWithUnderscore(value), options);
10
12
  },
11
13
  makeSafeTypeIdentifier(value) {
12
- return changeCase.pascalCase(replaceInvalidWithUnderscore(value));
14
+ const options = value.startsWith('_') ? { prefixCharacters: '_' } : {};
15
+ return changeCase.pascalCase(replaceInvalidWithUnderscore(value), options);
13
16
  },
14
17
  makeSafeMethodIdentifier(value) {
15
- return changeCase.camelCase(replaceInvalidWithUnderscore(value));
18
+ const options = value.startsWith('_') ? { prefixCharacters: '_' } : {};
19
+ return changeCase.camelCase(replaceInvalidWithUnderscore(value), options);
16
20
  },
17
21
  isSafeVariableIdentifier(value) {
18
22
  return /^[a-z$_][a-z0-9_$]*$/i.test(value);
19
23
  },
20
24
  makeSafeVariableIdentifier(value) {
21
- return changeCase.camelCase(replaceInvalidWithUnderscore(value));
25
+ const options = value.startsWith('_') ? { prefixCharacters: '_' } : {};
26
+ return changeCase.camelCase(replaceInvalidWithUnderscore(value), options);
22
27
  },
23
28
  makeSafeStringTypeLiteral(value) {
24
29
  return escapeQuotes(value);
@@ -32,10 +37,10 @@ const preservingSanitiser = {
32
37
  return /^[a-z$_][a-z0-9_$]*$/i.test(value);
33
38
  },
34
39
  makeSafeMethodIdentifier(value) {
35
- return this.isSafeVariableIdentifier(value) ? value : `"${escapeQuotes(value)}"`;
40
+ return this.isSafeVariableIdentifier(value) ? value : `"${this.makeSafeStringTypeLiteral(value)}"`;
36
41
  },
37
42
  makeSafePropertyIdentifier(value) {
38
- return this.isSafeVariableIdentifier(value) ? value : `"${escapeQuotes(value)}"`;
43
+ return this.isSafeVariableIdentifier(value) ? value : `"${this.makeSafeStringTypeLiteral(value)}"`;
39
44
  },
40
45
  makeSafeTypeIdentifier(value) {
41
46
  return replaceInvalidWithUnderscore(value);
@@ -47,7 +52,7 @@ const preservingSanitiser = {
47
52
  return escapeQuotes(value);
48
53
  },
49
54
  getSafeMemberAccessor(value) {
50
- return this.isSafeVariableIdentifier(value) ? `.${value}` : `[${value}]`;
55
+ return this.isSafeVariableIdentifier(value) ? `.${value}` : `['${removeEnclosingQuotes(value)}']`;
51
56
  },
52
57
  };
53
58
  const getSanitizer = ({ preserveNames }) => (preserveNames ? preservingSanitiser : defaultSanitiser);
@@ -1 +1 @@
1
- {"version":3,"file":"sanitization.js","sources":["../../src/util/sanitization.ts"],"sourcesContent":["import { camelCase, pascalCase } from 'change-case'\n\nconst replaceInvalidWithUnderscore = (value: string) => value.replace(/[^a-z0-9_$]+/gi, '_')\n\nconst escapeQuotes = (value: string) => value.replace(/['\"]/g, (val) => `\\\\${val}`)\n\nexport interface Sanitizer {\n makeSafeTypeIdentifier(value: string): string\n makeSafeMethodIdentifier(value: string): string\n makeSafeVariableIdentifier(value: string): string\n makeSafePropertyIdentifier(value: string): string\n makeSafeStringTypeLiteral(value: string): string\n getSafeMemberAccessor(value: string): string\n isSafeVariableIdentifier(value: string): boolean\n}\n\nconst defaultSanitiser: Sanitizer = {\n makeSafePropertyIdentifier(value: string) {\n return camelCase(replaceInvalidWithUnderscore(value))\n },\n makeSafeTypeIdentifier(value: string) {\n return pascalCase(replaceInvalidWithUnderscore(value))\n },\n makeSafeMethodIdentifier(value: string) {\n return camelCase(replaceInvalidWithUnderscore(value))\n },\n isSafeVariableIdentifier(value: string) {\n return /^[a-z$_][a-z0-9_$]*$/i.test(value)\n },\n makeSafeVariableIdentifier(value: string) {\n return camelCase(replaceInvalidWithUnderscore(value))\n },\n makeSafeStringTypeLiteral(value: string): string {\n return escapeQuotes(value)\n },\n getSafeMemberAccessor(value: string): string {\n return this.isSafeVariableIdentifier(value) ? `.${value}` : `['${this.makeSafeStringTypeLiteral(value)}']`\n },\n}\n\nconst preservingSanitiser: Sanitizer = {\n isSafeVariableIdentifier(value: string): boolean {\n return /^[a-z$_][a-z0-9_$]*$/i.test(value)\n },\n makeSafeMethodIdentifier(value: string): string {\n return this.isSafeVariableIdentifier(value) ? value : `\"${escapeQuotes(value)}\"`\n },\n makeSafePropertyIdentifier(value: string): string {\n return this.isSafeVariableIdentifier(value) ? value : `\"${escapeQuotes(value)}\"`\n },\n makeSafeTypeIdentifier(value: string): string {\n return replaceInvalidWithUnderscore(value)\n },\n makeSafeVariableIdentifier(value: string): string {\n return replaceInvalidWithUnderscore(value)\n },\n makeSafeStringTypeLiteral(value: string): string {\n return escapeQuotes(value)\n },\n getSafeMemberAccessor(value: string): string {\n return this.isSafeVariableIdentifier(value) ? `.${value}` : `[${value}]`\n },\n}\n\nexport const getSanitizer = ({ preserveNames }: { preserveNames: boolean }) => (preserveNames ? preservingSanitiser : defaultSanitiser)\n"],"names":["camelCase","pascalCase"],"mappings":";;;;AAEA,MAAM,4BAA4B,GAAG,CAAC,KAAa,KAAK,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;AAE5F,MAAM,YAAY,GAAG,CAAC,KAAa,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAK,EAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAA;AAYnF,MAAM,gBAAgB,GAAc;AAClC,IAAA,0BAA0B,CAAC,KAAa,EAAA;AACtC,QAAA,OAAOA,oBAAS,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAA;KACtD;AACD,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAOC,qBAAU,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAA;KACvD;AACD,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAOD,oBAAS,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAA;KACtD;AACD,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC3C;AACD,IAAA,0BAA0B,CAAC,KAAa,EAAA;AACtC,QAAA,OAAOA,oBAAS,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAA;KACtD;AACD,IAAA,yBAAyB,CAAC,KAAa,EAAA;AACrC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;KAC3B;AACD,IAAA,qBAAqB,CAAC,KAAa,EAAA;QACjC,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAI,CAAA,EAAA,KAAK,EAAE,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAA,EAAA,CAAI,CAAA;KAC3G;CACF,CAAA;AAED,MAAM,mBAAmB,GAAc;AACrC,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC3C;AACD,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAI,CAAA,EAAA,YAAY,CAAC,KAAK,CAAC,GAAG,CAAA;KACjF;AACD,IAAA,0BAA0B,CAAC,KAAa,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAI,CAAA,EAAA,YAAY,CAAC,KAAK,CAAC,GAAG,CAAA;KACjF;AACD,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,4BAA4B,CAAC,KAAK,CAAC,CAAA;KAC3C;AACD,IAAA,0BAA0B,CAAC,KAAa,EAAA;AACtC,QAAA,OAAO,4BAA4B,CAAC,KAAK,CAAC,CAAA;KAC3C;AACD,IAAA,yBAAyB,CAAC,KAAa,EAAA;AACrC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;KAC3B;AACD,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAI,CAAA,EAAA,KAAK,EAAE,GAAG,CAAI,CAAA,EAAA,KAAK,GAAG,CAAA;KACzE;CACF,CAAA;MAEY,YAAY,GAAG,CAAC,EAAE,aAAa,EAA8B,MAAM,aAAa,GAAG,mBAAmB,GAAG,gBAAgB;;;;"}
1
+ {"version":3,"file":"sanitization.js","sources":["../../src/util/sanitization.ts"],"sourcesContent":["import { camelCase, pascalCase } from 'change-case'\n\nconst replaceInvalidWithUnderscore = (value: string) => value.replace(/[^a-z0-9_$]+/gi, '_')\n\nconst escapeQuotes = (value: string) => value.replace(/['\"]/g, (val) => `\\\\${val}`)\n\nconst removeEnclosingQuotes = (value: string) => value.replace(/^\"|\"$/g, '')\n\nexport interface Sanitizer {\n makeSafeTypeIdentifier(value: string): string\n makeSafeMethodIdentifier(value: string): string\n makeSafeVariableIdentifier(value: string): string\n makeSafePropertyIdentifier(value: string): string\n makeSafeStringTypeLiteral(value: string): string\n getSafeMemberAccessor(value: string): string\n isSafeVariableIdentifier(value: string): boolean\n}\n\nconst defaultSanitiser: Sanitizer = {\n makeSafePropertyIdentifier(value: string) {\n const options = value.startsWith('_') ? { prefixCharacters: '_' } : {}\n return camelCase(replaceInvalidWithUnderscore(value), options)\n },\n makeSafeTypeIdentifier(value: string) {\n const options = value.startsWith('_') ? { prefixCharacters: '_' } : {}\n return pascalCase(replaceInvalidWithUnderscore(value), options)\n },\n makeSafeMethodIdentifier(value: string) {\n const options = value.startsWith('_') ? { prefixCharacters: '_' } : {}\n return camelCase(replaceInvalidWithUnderscore(value), options)\n },\n isSafeVariableIdentifier(value: string) {\n return /^[a-z$_][a-z0-9_$]*$/i.test(value)\n },\n makeSafeVariableIdentifier(value: string) {\n const options = value.startsWith('_') ? { prefixCharacters: '_' } : {}\n return camelCase(replaceInvalidWithUnderscore(value), options)\n },\n makeSafeStringTypeLiteral(value: string): string {\n return escapeQuotes(value)\n },\n getSafeMemberAccessor(value: string): string {\n return this.isSafeVariableIdentifier(value) ? `.${value}` : `['${this.makeSafeStringTypeLiteral(value)}']`\n },\n}\n\nconst preservingSanitiser: Sanitizer = {\n isSafeVariableIdentifier(value: string): boolean {\n return /^[a-z$_][a-z0-9_$]*$/i.test(value)\n },\n makeSafeMethodIdentifier(value: string): string {\n return this.isSafeVariableIdentifier(value) ? value : `\"${this.makeSafeStringTypeLiteral(value)}\"`\n },\n makeSafePropertyIdentifier(value: string): string {\n return this.isSafeVariableIdentifier(value) ? value : `\"${this.makeSafeStringTypeLiteral(value)}\"`\n },\n makeSafeTypeIdentifier(value: string): string {\n return replaceInvalidWithUnderscore(value)\n },\n makeSafeVariableIdentifier(value: string): string {\n return replaceInvalidWithUnderscore(value)\n },\n makeSafeStringTypeLiteral(value: string): string {\n return escapeQuotes(value)\n },\n getSafeMemberAccessor(value: string): string {\n return this.isSafeVariableIdentifier(value) ? `.${value}` : `['${removeEnclosingQuotes(value)}']`\n },\n}\n\nexport const getSanitizer = ({ preserveNames }: { preserveNames: boolean }) => (preserveNames ? preservingSanitiser : defaultSanitiser)\n"],"names":["camelCase","pascalCase"],"mappings":"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"}
@@ -2,21 +2,26 @@ import { camelCase, pascalCase } from 'change-case';
2
2
 
3
3
  const replaceInvalidWithUnderscore = (value) => value.replace(/[^a-z0-9_$]+/gi, '_');
4
4
  const escapeQuotes = (value) => value.replace(/['"]/g, (val) => `\\${val}`);
5
+ const removeEnclosingQuotes = (value) => value.replace(/^"|"$/g, '');
5
6
  const defaultSanitiser = {
6
7
  makeSafePropertyIdentifier(value) {
7
- return camelCase(replaceInvalidWithUnderscore(value));
8
+ const options = value.startsWith('_') ? { prefixCharacters: '_' } : {};
9
+ return camelCase(replaceInvalidWithUnderscore(value), options);
8
10
  },
9
11
  makeSafeTypeIdentifier(value) {
10
- return pascalCase(replaceInvalidWithUnderscore(value));
12
+ const options = value.startsWith('_') ? { prefixCharacters: '_' } : {};
13
+ return pascalCase(replaceInvalidWithUnderscore(value), options);
11
14
  },
12
15
  makeSafeMethodIdentifier(value) {
13
- return camelCase(replaceInvalidWithUnderscore(value));
16
+ const options = value.startsWith('_') ? { prefixCharacters: '_' } : {};
17
+ return camelCase(replaceInvalidWithUnderscore(value), options);
14
18
  },
15
19
  isSafeVariableIdentifier(value) {
16
20
  return /^[a-z$_][a-z0-9_$]*$/i.test(value);
17
21
  },
18
22
  makeSafeVariableIdentifier(value) {
19
- return camelCase(replaceInvalidWithUnderscore(value));
23
+ const options = value.startsWith('_') ? { prefixCharacters: '_' } : {};
24
+ return camelCase(replaceInvalidWithUnderscore(value), options);
20
25
  },
21
26
  makeSafeStringTypeLiteral(value) {
22
27
  return escapeQuotes(value);
@@ -30,10 +35,10 @@ const preservingSanitiser = {
30
35
  return /^[a-z$_][a-z0-9_$]*$/i.test(value);
31
36
  },
32
37
  makeSafeMethodIdentifier(value) {
33
- return this.isSafeVariableIdentifier(value) ? value : `"${escapeQuotes(value)}"`;
38
+ return this.isSafeVariableIdentifier(value) ? value : `"${this.makeSafeStringTypeLiteral(value)}"`;
34
39
  },
35
40
  makeSafePropertyIdentifier(value) {
36
- return this.isSafeVariableIdentifier(value) ? value : `"${escapeQuotes(value)}"`;
41
+ return this.isSafeVariableIdentifier(value) ? value : `"${this.makeSafeStringTypeLiteral(value)}"`;
37
42
  },
38
43
  makeSafeTypeIdentifier(value) {
39
44
  return replaceInvalidWithUnderscore(value);
@@ -45,7 +50,7 @@ const preservingSanitiser = {
45
50
  return escapeQuotes(value);
46
51
  },
47
52
  getSafeMemberAccessor(value) {
48
- return this.isSafeVariableIdentifier(value) ? `.${value}` : `[${value}]`;
53
+ return this.isSafeVariableIdentifier(value) ? `.${value}` : `['${removeEnclosingQuotes(value)}']`;
49
54
  },
50
55
  };
51
56
  const getSanitizer = ({ preserveNames }) => (preserveNames ? preservingSanitiser : defaultSanitiser);
@@ -1 +1 @@
1
- {"version":3,"file":"sanitization.mjs","sources":["../../src/util/sanitization.ts"],"sourcesContent":["import { camelCase, pascalCase } from 'change-case'\n\nconst replaceInvalidWithUnderscore = (value: string) => value.replace(/[^a-z0-9_$]+/gi, '_')\n\nconst escapeQuotes = (value: string) => value.replace(/['\"]/g, (val) => `\\\\${val}`)\n\nexport interface Sanitizer {\n makeSafeTypeIdentifier(value: string): string\n makeSafeMethodIdentifier(value: string): string\n makeSafeVariableIdentifier(value: string): string\n makeSafePropertyIdentifier(value: string): string\n makeSafeStringTypeLiteral(value: string): string\n getSafeMemberAccessor(value: string): string\n isSafeVariableIdentifier(value: string): boolean\n}\n\nconst defaultSanitiser: Sanitizer = {\n makeSafePropertyIdentifier(value: string) {\n return camelCase(replaceInvalidWithUnderscore(value))\n },\n makeSafeTypeIdentifier(value: string) {\n return pascalCase(replaceInvalidWithUnderscore(value))\n },\n makeSafeMethodIdentifier(value: string) {\n return camelCase(replaceInvalidWithUnderscore(value))\n },\n isSafeVariableIdentifier(value: string) {\n return /^[a-z$_][a-z0-9_$]*$/i.test(value)\n },\n makeSafeVariableIdentifier(value: string) {\n return camelCase(replaceInvalidWithUnderscore(value))\n },\n makeSafeStringTypeLiteral(value: string): string {\n return escapeQuotes(value)\n },\n getSafeMemberAccessor(value: string): string {\n return this.isSafeVariableIdentifier(value) ? `.${value}` : `['${this.makeSafeStringTypeLiteral(value)}']`\n },\n}\n\nconst preservingSanitiser: Sanitizer = {\n isSafeVariableIdentifier(value: string): boolean {\n return /^[a-z$_][a-z0-9_$]*$/i.test(value)\n },\n makeSafeMethodIdentifier(value: string): string {\n return this.isSafeVariableIdentifier(value) ? value : `\"${escapeQuotes(value)}\"`\n },\n makeSafePropertyIdentifier(value: string): string {\n return this.isSafeVariableIdentifier(value) ? value : `\"${escapeQuotes(value)}\"`\n },\n makeSafeTypeIdentifier(value: string): string {\n return replaceInvalidWithUnderscore(value)\n },\n makeSafeVariableIdentifier(value: string): string {\n return replaceInvalidWithUnderscore(value)\n },\n makeSafeStringTypeLiteral(value: string): string {\n return escapeQuotes(value)\n },\n getSafeMemberAccessor(value: string): string {\n return this.isSafeVariableIdentifier(value) ? `.${value}` : `[${value}]`\n },\n}\n\nexport const getSanitizer = ({ preserveNames }: { preserveNames: boolean }) => (preserveNames ? preservingSanitiser : defaultSanitiser)\n"],"names":[],"mappings":";;AAEA,MAAM,4BAA4B,GAAG,CAAC,KAAa,KAAK,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;AAE5F,MAAM,YAAY,GAAG,CAAC,KAAa,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAK,EAAA,EAAA,GAAG,CAAE,CAAA,CAAC,CAAA;AAYnF,MAAM,gBAAgB,GAAc;AAClC,IAAA,0BAA0B,CAAC,KAAa,EAAA;AACtC,QAAA,OAAO,SAAS,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAA;KACtD;AACD,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,UAAU,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAA;KACvD;AACD,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,SAAS,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAA;KACtD;AACD,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC3C;AACD,IAAA,0BAA0B,CAAC,KAAa,EAAA;AACtC,QAAA,OAAO,SAAS,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAA;KACtD;AACD,IAAA,yBAAyB,CAAC,KAAa,EAAA;AACrC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;KAC3B;AACD,IAAA,qBAAqB,CAAC,KAAa,EAAA;QACjC,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAI,CAAA,EAAA,KAAK,EAAE,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAA,EAAA,CAAI,CAAA;KAC3G;CACF,CAAA;AAED,MAAM,mBAAmB,GAAc;AACrC,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC3C;AACD,IAAA,wBAAwB,CAAC,KAAa,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAI,CAAA,EAAA,YAAY,CAAC,KAAK,CAAC,GAAG,CAAA;KACjF;AACD,IAAA,0BAA0B,CAAC,KAAa,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAI,CAAA,EAAA,YAAY,CAAC,KAAK,CAAC,GAAG,CAAA;KACjF;AACD,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,4BAA4B,CAAC,KAAK,CAAC,CAAA;KAC3C;AACD,IAAA,0BAA0B,CAAC,KAAa,EAAA;AACtC,QAAA,OAAO,4BAA4B,CAAC,KAAK,CAAC,CAAA;KAC3C;AACD,IAAA,yBAAyB,CAAC,KAAa,EAAA;AACrC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;KAC3B;AACD,IAAA,qBAAqB,CAAC,KAAa,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAI,CAAA,EAAA,KAAK,EAAE,GAAG,CAAI,CAAA,EAAA,KAAK,GAAG,CAAA;KACzE;CACF,CAAA;MAEY,YAAY,GAAG,CAAC,EAAE,aAAa,EAA8B,MAAM,aAAa,GAAG,mBAAmB,GAAG,gBAAgB;;;;"}
1
+ {"version":3,"file":"sanitization.mjs","sources":["../../src/util/sanitization.ts"],"sourcesContent":["import { camelCase, pascalCase } from 'change-case'\n\nconst replaceInvalidWithUnderscore = (value: string) => value.replace(/[^a-z0-9_$]+/gi, '_')\n\nconst escapeQuotes = (value: string) => value.replace(/['\"]/g, (val) => `\\\\${val}`)\n\nconst removeEnclosingQuotes = (value: string) => value.replace(/^\"|\"$/g, '')\n\nexport interface Sanitizer {\n makeSafeTypeIdentifier(value: string): string\n makeSafeMethodIdentifier(value: string): string\n makeSafeVariableIdentifier(value: string): string\n makeSafePropertyIdentifier(value: string): string\n makeSafeStringTypeLiteral(value: string): string\n getSafeMemberAccessor(value: string): string\n isSafeVariableIdentifier(value: string): boolean\n}\n\nconst defaultSanitiser: Sanitizer = {\n makeSafePropertyIdentifier(value: string) {\n const options = value.startsWith('_') ? { prefixCharacters: '_' } : {}\n return camelCase(replaceInvalidWithUnderscore(value), options)\n },\n makeSafeTypeIdentifier(value: string) {\n const options = value.startsWith('_') ? { prefixCharacters: '_' } : {}\n return pascalCase(replaceInvalidWithUnderscore(value), options)\n },\n makeSafeMethodIdentifier(value: string) {\n const options = value.startsWith('_') ? { prefixCharacters: '_' } : {}\n return camelCase(replaceInvalidWithUnderscore(value), options)\n },\n isSafeVariableIdentifier(value: string) {\n return /^[a-z$_][a-z0-9_$]*$/i.test(value)\n },\n makeSafeVariableIdentifier(value: string) {\n const options = value.startsWith('_') ? { prefixCharacters: '_' } : {}\n return camelCase(replaceInvalidWithUnderscore(value), options)\n },\n makeSafeStringTypeLiteral(value: string): string {\n return escapeQuotes(value)\n },\n getSafeMemberAccessor(value: string): string {\n return this.isSafeVariableIdentifier(value) ? `.${value}` : `['${this.makeSafeStringTypeLiteral(value)}']`\n },\n}\n\nconst preservingSanitiser: Sanitizer = {\n isSafeVariableIdentifier(value: string): boolean {\n return /^[a-z$_][a-z0-9_$]*$/i.test(value)\n },\n makeSafeMethodIdentifier(value: string): string {\n return this.isSafeVariableIdentifier(value) ? value : `\"${this.makeSafeStringTypeLiteral(value)}\"`\n },\n makeSafePropertyIdentifier(value: string): string {\n return this.isSafeVariableIdentifier(value) ? value : `\"${this.makeSafeStringTypeLiteral(value)}\"`\n },\n makeSafeTypeIdentifier(value: string): string {\n return replaceInvalidWithUnderscore(value)\n },\n makeSafeVariableIdentifier(value: string): string {\n return replaceInvalidWithUnderscore(value)\n },\n makeSafeStringTypeLiteral(value: string): string {\n return escapeQuotes(value)\n },\n getSafeMemberAccessor(value: string): string {\n return this.isSafeVariableIdentifier(value) ? `.${value}` : `['${removeEnclosingQuotes(value)}']`\n },\n}\n\nexport const getSanitizer = ({ preserveNames }: { preserveNames: boolean }) => (preserveNames ? preservingSanitiser : defaultSanitiser)\n"],"names":[],"mappings":"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"}