@algorandfoundation/algokit-client-generator 2.6.1-beta.1 → 3.0.0-beta.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.
- package/{cli.cjs → cli.js} +8 -6
- package/cli.js.map +1 -0
- package/cli.mjs +4 -2
- package/cli.mjs.map +1 -0
- package/client/{app-types.cjs → app-types.js} +20 -16
- package/client/app-types.js.map +1 -0
- package/client/app-types.mjs +18 -14
- package/client/app-types.mjs.map +1 -0
- package/client/{call-client.cjs → call-client.js} +30 -21
- package/client/call-client.js.map +1 -0
- package/client/call-client.mjs +26 -17
- package/client/call-client.mjs.map +1 -0
- package/client/{call-composer-types.cjs → call-composer-types.js} +11 -9
- package/client/call-composer-types.js.map +1 -0
- package/client/call-composer-types.mjs +8 -6
- package/client/call-composer-types.mjs.map +1 -0
- package/client/{call-composer.cjs → call-composer.js} +16 -12
- package/client/call-composer.js.map +1 -0
- package/client/call-composer.mjs +13 -9
- package/client/call-composer.mjs.map +1 -0
- package/client/{call-factory.cjs → call-factory.js} +16 -12
- package/client/call-factory.js.map +1 -0
- package/client/call-factory.mjs +13 -9
- package/client/call-factory.mjs.map +1 -0
- package/client/deploy-types.d.ts +1 -1
- package/client/{deploy-types.cjs → deploy-types.js} +12 -9
- package/client/deploy-types.js.map +1 -0
- package/client/deploy-types.mjs +9 -6
- package/client/deploy-types.mjs.map +1 -0
- package/client/generate.d.ts +2 -1
- package/client/{generate.cjs → generate.js} +12 -11
- package/client/generate.js.map +1 -0
- package/client/generate.mjs +3 -2
- package/client/generate.mjs.map +1 -0
- package/client/generator-context.d.ts +7 -1
- package/client/{generator-context.cjs → generator-context.js} +17 -12
- package/client/generator-context.js.map +1 -0
- package/client/generator-context.mjs +16 -11
- package/client/generator-context.mjs.map +1 -0
- package/client/helpers/{get-call-config-summary.cjs → get-call-config-summary.js} +1 -0
- package/client/helpers/get-call-config-summary.js.map +1 -0
- package/client/helpers/get-call-config-summary.mjs +1 -0
- package/client/helpers/get-call-config-summary.mjs.map +1 -0
- package/client/helpers/{get-equivalent-type.cjs → get-equivalent-type.js} +1 -0
- package/client/helpers/get-equivalent-type.js.map +1 -0
- package/client/helpers/get-equivalent-type.mjs +1 -0
- package/client/helpers/get-equivalent-type.mjs.map +1 -0
- package/client/{imports.cjs → imports.js} +1 -0
- package/client/imports.js.map +1 -0
- package/client/imports.mjs +1 -0
- package/client/imports.mjs.map +1 -0
- package/client/{utility-types.cjs → utility-types.js} +2 -1
- package/client/utility-types.js.map +1 -0
- package/client/utility-types.mjs +1 -0
- package/client/utility-types.mjs.map +1 -0
- package/{index.cjs → index.js} +4 -3
- package/index.js.map +1 -0
- package/index.mjs +1 -0
- package/index.mjs.map +1 -0
- package/output/{writer.cjs → writer.js} +1 -0
- package/output/writer.js.map +1 -0
- package/output/writer.mjs +1 -0
- package/output/writer.mjs.map +1 -0
- package/package.json +3 -1
- package/schema/{application.schema.json.cjs → application.schema.json.js} +1 -0
- package/schema/application.schema.json.js.map +1 -0
- package/schema/application.schema.json.mjs +1 -0
- package/schema/application.schema.json.mjs.map +1 -0
- package/schema/{contract.schema.json.cjs → contract.schema.json.js} +1 -0
- package/schema/contract.schema.json.js.map +1 -0
- package/schema/contract.schema.json.mjs +1 -0
- package/schema/contract.schema.json.mjs.map +1 -0
- package/schema/{load.cjs → load.js} +4 -3
- package/schema/load.js.map +1 -0
- package/schema/load.mjs +1 -0
- package/schema/load.mjs.map +1 -0
- package/util/{boom.cjs → boom.js} +1 -0
- package/util/boom.js.map +1 -0
- package/util/boom.mjs +1 -0
- package/util/boom.mjs.map +1 -0
- package/util/{color-console.cjs → color-console.js} +1 -0
- package/util/color-console.js.map +1 -0
- package/util/color-console.mjs +1 -0
- package/util/color-console.mjs.map +1 -0
- package/util/sanitization.d.ts +12 -5
- package/util/sanitization.js +56 -0
- package/util/sanitization.js.map +1 -0
- package/util/sanitization.mjs +50 -7
- package/util/sanitization.mjs.map +1 -0
- package/util/sanitization.cjs +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-equivalent-type.js","sources":["../../../src/client/helpers/get-equivalent-type.ts"],"sourcesContent":["import {\n ABIAddressType,\n ABIArrayDynamicType,\n ABIArrayStaticType,\n ABIBoolType,\n ABIByteType,\n ABIReferenceType,\n ABIStringType,\n ABITupleType,\n ABIType,\n ABIUfixedType,\n ABIUintType,\n abiTypeIsTransaction,\n} from 'algosdk'\n\nexport function getEquivalentType(abiTypeStr: string, ioType: 'input' | 'output'): string {\n if (abiTypeStr == 'void') {\n return 'void'\n }\n if (abiTypeIsTransaction(abiTypeStr)) {\n return 'TransactionToSign | Transaction | Promise<SendTransactionResult>'\n }\n if (abiTypeStr == ABIReferenceType.account) {\n return 'string | Uint8Array'\n }\n if (abiTypeStr == ABIReferenceType.application || abiTypeStr == ABIReferenceType.asset) {\n return 'number | bigint'\n }\n\n const abiType = ABIType.from(abiTypeStr)\n\n return abiTypeToTs(abiType, ioType)\n\n function abiTypeToTs(abiType: ABIType, ioType: 'input' | 'output'): string {\n if (abiType instanceof ABIUintType) {\n if (abiType.bitSize <= 51) return 'number'\n return ioType === 'input' ? 'bigint | number' : 'bigint'\n }\n if (abiType instanceof ABIArrayDynamicType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n return `${abiTypeToTs(abiType.childType, ioType)}[]`\n }\n if (abiType instanceof ABIArrayStaticType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n return `[${new Array(abiType.staticLength).fill(abiTypeToTs(abiType.childType, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIAddressType) {\n return 'string'\n }\n if (abiType instanceof ABIBoolType) {\n return 'boolean'\n }\n if (abiType instanceof ABIUfixedType) {\n return 'number'\n }\n if (abiType instanceof ABITupleType) {\n return `[${abiType.childTypes.map((c) => abiTypeToTs(c, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIByteType) {\n return 'number'\n }\n if (abiType instanceof ABIStringType) {\n return 'string'\n }\n return 'unknown'\n }\n}\n"],"names":["abiTypeIsTransaction","ABIReferenceType","ABIType","ABIUintType","ABIArrayDynamicType","ABIByteType","ABIArrayStaticType","ABIAddressType","ABIBoolType","ABIUfixedType","ABITupleType","ABIStringType"],"mappings":";;;;AAegB,SAAA,iBAAiB,CAAC,UAAkB,EAAE,MAA0B,EAAA;AAC9E,IAAA,IAAI,UAAU,IAAI,MAAM,EAAE;AACxB,QAAA,OAAO,MAAM,CAAA;KACd;AACD,IAAA,IAAIA,4BAAoB,CAAC,UAAU,CAAC,EAAE;AACpC,QAAA,OAAO,kEAAkE,CAAA;KAC1E;AACD,IAAA,IAAI,UAAU,IAAIC,wBAAgB,CAAC,OAAO,EAAE;AAC1C,QAAA,OAAO,qBAAqB,CAAA;KAC7B;AACD,IAAA,IAAI,UAAU,IAAIA,wBAAgB,CAAC,WAAW,IAAI,UAAU,IAAIA,wBAAgB,CAAC,KAAK,EAAE;AACtF,QAAA,OAAO,iBAAiB,CAAA;KACzB;IAED,MAAM,OAAO,GAAGC,eAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAExC,IAAA,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAEnC,IAAA,SAAS,WAAW,CAAC,OAAgB,EAAE,MAA0B,EAAA;AAC/D,QAAA,IAAI,OAAO,YAAYC,mBAAW,EAAE;AAClC,YAAA,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE;AAAE,gBAAA,OAAO,QAAQ,CAAA;YAC1C,OAAO,MAAM,KAAK,OAAO,GAAG,iBAAiB,GAAG,QAAQ,CAAA;SACzD;AACD,QAAA,IAAI,OAAO,YAAYC,2BAAmB,EAAE;AAC1C,YAAA,IAAI,OAAO,CAAC,SAAS,YAAYC,mBAAW;AAAE,gBAAA,OAAO,YAAY,CAAA;YACjE,OAAO,CAAA,EAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA,EAAA,CAAI,CAAA;SACrD;AACD,QAAA,IAAI,OAAO,YAAYC,0BAAkB,EAAE;AACzC,YAAA,IAAI,OAAO,CAAC,SAAS,YAAYD,mBAAW;AAAE,gBAAA,OAAO,YAAY,CAAA;YACjE,OAAO,CAAA,CAAA,EAAI,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA;SACtG;AACD,QAAA,IAAI,OAAO,YAAYE,sBAAc,EAAE;AACrC,YAAA,OAAO,QAAQ,CAAA;SAChB;AACD,QAAA,IAAI,OAAO,YAAYC,mBAAW,EAAE;AAClC,YAAA,OAAO,SAAS,CAAA;SACjB;AACD,QAAA,IAAI,OAAO,YAAYC,qBAAa,EAAE;AACpC,YAAA,OAAO,QAAQ,CAAA;SAChB;AACD,QAAA,IAAI,OAAO,YAAYC,oBAAY,EAAE;YACnC,OAAO,CAAA,CAAA,EAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA;SAC/E;AACD,QAAA,IAAI,OAAO,YAAYL,mBAAW,EAAE;AAClC,YAAA,OAAO,QAAQ,CAAA;SAChB;AACD,QAAA,IAAI,OAAO,YAAYM,qBAAa,EAAE;AACpC,YAAA,OAAO,QAAQ,CAAA;SAChB;AACD,QAAA,OAAO,SAAS,CAAA;KACjB;AACH;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-equivalent-type.mjs","sources":["../../../src/client/helpers/get-equivalent-type.ts"],"sourcesContent":["import {\n ABIAddressType,\n ABIArrayDynamicType,\n ABIArrayStaticType,\n ABIBoolType,\n ABIByteType,\n ABIReferenceType,\n ABIStringType,\n ABITupleType,\n ABIType,\n ABIUfixedType,\n ABIUintType,\n abiTypeIsTransaction,\n} from 'algosdk'\n\nexport function getEquivalentType(abiTypeStr: string, ioType: 'input' | 'output'): string {\n if (abiTypeStr == 'void') {\n return 'void'\n }\n if (abiTypeIsTransaction(abiTypeStr)) {\n return 'TransactionToSign | Transaction | Promise<SendTransactionResult>'\n }\n if (abiTypeStr == ABIReferenceType.account) {\n return 'string | Uint8Array'\n }\n if (abiTypeStr == ABIReferenceType.application || abiTypeStr == ABIReferenceType.asset) {\n return 'number | bigint'\n }\n\n const abiType = ABIType.from(abiTypeStr)\n\n return abiTypeToTs(abiType, ioType)\n\n function abiTypeToTs(abiType: ABIType, ioType: 'input' | 'output'): string {\n if (abiType instanceof ABIUintType) {\n if (abiType.bitSize <= 51) return 'number'\n return ioType === 'input' ? 'bigint | number' : 'bigint'\n }\n if (abiType instanceof ABIArrayDynamicType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n return `${abiTypeToTs(abiType.childType, ioType)}[]`\n }\n if (abiType instanceof ABIArrayStaticType) {\n if (abiType.childType instanceof ABIByteType) return 'Uint8Array'\n return `[${new Array(abiType.staticLength).fill(abiTypeToTs(abiType.childType, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIAddressType) {\n return 'string'\n }\n if (abiType instanceof ABIBoolType) {\n return 'boolean'\n }\n if (abiType instanceof ABIUfixedType) {\n return 'number'\n }\n if (abiType instanceof ABITupleType) {\n return `[${abiType.childTypes.map((c) => abiTypeToTs(c, ioType)).join(', ')}]`\n }\n if (abiType instanceof ABIByteType) {\n return 'number'\n }\n if (abiType instanceof ABIStringType) {\n return 'string'\n }\n return 'unknown'\n }\n}\n"],"names":[],"mappings":";;AAegB,SAAA,iBAAiB,CAAC,UAAkB,EAAE,MAA0B,EAAA;AAC9E,IAAA,IAAI,UAAU,IAAI,MAAM,EAAE;AACxB,QAAA,OAAO,MAAM,CAAA;KACd;AACD,IAAA,IAAI,oBAAoB,CAAC,UAAU,CAAC,EAAE;AACpC,QAAA,OAAO,kEAAkE,CAAA;KAC1E;AACD,IAAA,IAAI,UAAU,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC1C,QAAA,OAAO,qBAAqB,CAAA;KAC7B;AACD,IAAA,IAAI,UAAU,IAAI,gBAAgB,CAAC,WAAW,IAAI,UAAU,IAAI,gBAAgB,CAAC,KAAK,EAAE;AACtF,QAAA,OAAO,iBAAiB,CAAA;KACzB;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAExC,IAAA,OAAO,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAEnC,IAAA,SAAS,WAAW,CAAC,OAAgB,EAAE,MAA0B,EAAA;AAC/D,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,YAAA,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE;AAAE,gBAAA,OAAO,QAAQ,CAAA;YAC1C,OAAO,MAAM,KAAK,OAAO,GAAG,iBAAiB,GAAG,QAAQ,CAAA;SACzD;AACD,QAAA,IAAI,OAAO,YAAY,mBAAmB,EAAE;AAC1C,YAAA,IAAI,OAAO,CAAC,SAAS,YAAY,WAAW;AAAE,gBAAA,OAAO,YAAY,CAAA;YACjE,OAAO,CAAA,EAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA,EAAA,CAAI,CAAA;SACrD;AACD,QAAA,IAAI,OAAO,YAAY,kBAAkB,EAAE;AACzC,YAAA,IAAI,OAAO,CAAC,SAAS,YAAY,WAAW;AAAE,gBAAA,OAAO,YAAY,CAAA;YACjE,OAAO,CAAA,CAAA,EAAI,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA;SACtG;AACD,QAAA,IAAI,OAAO,YAAY,cAAc,EAAE;AACrC,YAAA,OAAO,QAAQ,CAAA;SAChB;AACD,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,YAAA,OAAO,SAAS,CAAA;SACjB;AACD,QAAA,IAAI,OAAO,YAAY,aAAa,EAAE;AACpC,YAAA,OAAO,QAAQ,CAAA;SAChB;AACD,QAAA,IAAI,OAAO,YAAY,YAAY,EAAE;YACnC,OAAO,CAAA,CAAA,EAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA;SAC/E;AACD,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,YAAA,OAAO,QAAQ,CAAA;SAChB;AACD,QAAA,IAAI,OAAO,YAAY,aAAa,EAAE;AACpC,YAAA,OAAO,QAAQ,CAAA;SAChB;AACD,QAAA,OAAO,SAAS,CAAA;KACjB;AACH;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.js","sources":["../../src/client/imports.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* imports(): DocumentParts {\n yield `import * as algokit from '@algorandfoundation/algokit-utils'\nimport type {\n ABIAppCallArg,\n AppCallTransactionResult,\n AppCallTransactionResultOfType,\n AppCompilationResult,\n AppReference,\n AppState,\n CoreAppCallArgs,\n RawAppCallArgs,\n TealTemplateParams,\n} from '@algorandfoundation/algokit-utils/types/app'\nimport type {\n AppClientCallCoreParams,\n AppClientCompilationParams,\n AppClientDeployCoreParams,\n AppDetails,\n ApplicationClient,\n} from '@algorandfoundation/algokit-utils/types/app-client'\nimport type { AppSpec } from '@algorandfoundation/algokit-utils/types/app-spec'\nimport type { SendTransactionResult, TransactionToSign, SendTransactionFrom, SendTransactionParams } from '@algorandfoundation/algokit-utils/types/transaction'\nimport type { ABIResult, TransactionWithSigner } from 'algosdk'\nimport { Algodv2, OnApplicationComplete, Transaction, AtomicTransactionComposer, modelsv2 } from 'algosdk'`\n}\n"],"names":[],"mappings":";;AAEM,UAAW,OAAO,GAAA;IACtB,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;2GAsBmG,CAAA;AAC3G;;;;"}
|
package/client/imports.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.mjs","sources":["../../src/client/imports.ts"],"sourcesContent":["import { DocumentParts } from '../output/writer'\n\nexport function* imports(): DocumentParts {\n yield `import * as algokit from '@algorandfoundation/algokit-utils'\nimport type {\n ABIAppCallArg,\n AppCallTransactionResult,\n AppCallTransactionResultOfType,\n AppCompilationResult,\n AppReference,\n AppState,\n CoreAppCallArgs,\n RawAppCallArgs,\n TealTemplateParams,\n} from '@algorandfoundation/algokit-utils/types/app'\nimport type {\n AppClientCallCoreParams,\n AppClientCompilationParams,\n AppClientDeployCoreParams,\n AppDetails,\n ApplicationClient,\n} from '@algorandfoundation/algokit-utils/types/app-client'\nimport type { AppSpec } from '@algorandfoundation/algokit-utils/types/app-spec'\nimport type { SendTransactionResult, TransactionToSign, SendTransactionFrom, SendTransactionParams } from '@algorandfoundation/algokit-utils/types/transaction'\nimport type { ABIResult, TransactionWithSigner } from 'algosdk'\nimport { Algodv2, OnApplicationComplete, Transaction, AtomicTransactionComposer, modelsv2 } from 'algosdk'`\n}\n"],"names":[],"mappings":"AAEM,UAAW,OAAO,GAAA;IACtB,MAAM,CAAA;;;;;;;;;;;;;;;;;;;;;;2GAsBmG,CAAA;AAC3G;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var writer = require('../output/writer.
|
|
3
|
+
var writer = require('../output/writer.js');
|
|
4
4
|
|
|
5
5
|
function* utilityTypes() {
|
|
6
6
|
yield* writer.jsDoc(`Defines an onCompletionAction of 'no_op'`);
|
|
@@ -48,3 +48,4 @@ const OnCompleteCodeMap = {
|
|
|
48
48
|
|
|
49
49
|
exports.OnCompleteCodeMap = OnCompleteCodeMap;
|
|
50
50
|
exports.utilityTypes = utilityTypes;
|
|
51
|
+
//# sourceMappingURL=utility-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utility-types.js","sources":["../../src/client/utility-types.ts"],"sourcesContent":["import { DecIndentAndCloseBlock, DocumentParts, IncIndent, indent, jsDoc, NewLine } from '../output/writer'\n\nexport function* utilityTypes(): DocumentParts {\n yield* jsDoc(`Defines an onCompletionAction of 'no_op'`)\n yield `export type OnCompleteNoOp = { onCompleteAction?: 'no_op' | OnApplicationComplete.NoOpOC }`\n yield* jsDoc(`Defines an onCompletionAction of 'opt_in'`)\n yield `export type OnCompleteOptIn = { onCompleteAction: 'opt_in' | OnApplicationComplete.OptInOC }`\n yield* jsDoc(`Defines an onCompletionAction of 'close_out'`)\n yield `export type OnCompleteCloseOut = { onCompleteAction: 'close_out' | OnApplicationComplete.CloseOutOC }`\n yield* jsDoc(`Defines an onCompletionAction of 'delete_application'`)\n yield `export type OnCompleteDelApp = { onCompleteAction: 'delete_application' | OnApplicationComplete.DeleteApplicationOC }`\n yield* jsDoc(`Defines an onCompletionAction of 'update_application'`)\n yield `export type OnCompleteUpdApp = { onCompleteAction: 'update_application' | OnApplicationComplete.UpdateApplicationOC }`\n\n yield* jsDoc('A state record containing a single unsigned integer')\n yield `export type IntegerState = {`\n yield IncIndent\n yield* jsDoc('Gets the state value as a BigInt.')\n yield `asBigInt(): bigint`\n yield* jsDoc('Gets the state value as a number.')\n yield `asNumber(): number`\n yield DecIndentAndCloseBlock\n yield* jsDoc('A state record containing binary data')\n yield `export type BinaryState = {`\n yield IncIndent\n yield* jsDoc('Gets the state value as a Uint8Array')\n yield `asByteArray(): Uint8Array`\n yield* jsDoc('Gets the state value as a string')\n yield `asString(): string`\n yield DecIndentAndCloseBlock\n\n yield NewLine\n yield `export type AppCreateCallTransactionResult = AppCallTransactionResult & Partial<AppCompilationResult> & AppReference`\n yield `export type AppUpdateCallTransactionResult = AppCallTransactionResult & Partial<AppCompilationResult>`\n\n yield NewLine\n yield `export type AppClientComposeCallCoreParams = Omit<AppClientCallCoreParams, 'sendParams'> & {`\n yield* indent(\n `sendParams?: Omit<SendTransactionParams, 'skipSending' | 'atc' | 'skipWaiting' | 'maxRoundsToWaitForConfirmation' | 'populateAppCallResources'>`,\n )\n yield `}`\n yield `export type AppClientComposeExecuteParams = Pick<SendTransactionParams, 'skipWaiting' | 'maxRoundsToWaitForConfirmation' | 'populateAppCallResources' | 'suppressLog'>`\n}\n\nexport const OnCompleteCodeMap = {\n no_op: 'OnCompleteNoOp',\n opt_in: 'OnCompleteOptIn',\n close_out: 'OnCompleteCloseOut',\n delete_application: 'OnCompleteDelApp',\n update_application: 'OnCompleteUpdApp',\n}\n"],"names":["jsDoc","IncIndent","DecIndentAndCloseBlock","NewLine","indent"],"mappings":";;;;AAEM,UAAW,YAAY,GAAA;AAC3B,IAAA,OAAOA,YAAK,CAAC,CAAA,wCAAA,CAA0C,CAAC,CAAA;AACxD,IAAA,MAAM,6FAA6F,CAAA;AACnG,IAAA,OAAOA,YAAK,CAAC,CAAA,yCAAA,CAA2C,CAAC,CAAA;AACzD,IAAA,MAAM,+FAA+F,CAAA;AACrG,IAAA,OAAOA,YAAK,CAAC,CAAA,4CAAA,CAA8C,CAAC,CAAA;AAC5D,IAAA,MAAM,wGAAwG,CAAA;AAC9G,IAAA,OAAOA,YAAK,CAAC,CAAA,qDAAA,CAAuD,CAAC,CAAA;AACrE,IAAA,MAAM,wHAAwH,CAAA;AAC9H,IAAA,OAAOA,YAAK,CAAC,CAAA,qDAAA,CAAuD,CAAC,CAAA;AACrE,IAAA,MAAM,wHAAwH,CAAA;AAE9H,IAAA,OAAOA,YAAK,CAAC,qDAAqD,CAAC,CAAA;AACnE,IAAA,MAAM,8BAA8B,CAAA;AACpC,IAAA,MAAMC,gBAAS,CAAA;AACf,IAAA,OAAOD,YAAK,CAAC,mCAAmC,CAAC,CAAA;AACjD,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,OAAOA,YAAK,CAAC,mCAAmC,CAAC,CAAA;AACjD,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,MAAME,6BAAsB,CAAA;AAC5B,IAAA,OAAOF,YAAK,CAAC,uCAAuC,CAAC,CAAA;AACrD,IAAA,MAAM,6BAA6B,CAAA;AACnC,IAAA,MAAMC,gBAAS,CAAA;AACf,IAAA,OAAOD,YAAK,CAAC,sCAAsC,CAAC,CAAA;AACpD,IAAA,MAAM,2BAA2B,CAAA;AACjC,IAAA,OAAOA,YAAK,CAAC,kCAAkC,CAAC,CAAA;AAChD,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,MAAME,6BAAsB,CAAA;AAE5B,IAAA,MAAMC,cAAO,CAAA;AACb,IAAA,MAAM,sHAAsH,CAAA;AAC5H,IAAA,MAAM,uGAAuG,CAAA;AAE7G,IAAA,MAAMA,cAAO,CAAA;AACb,IAAA,MAAM,8FAA8F,CAAA;AACpG,IAAA,OAAOC,aAAM,CACX,CAAA,+IAAA,CAAiJ,CAClJ,CAAA;AACD,IAAA,MAAM,GAAG,CAAA;AACT,IAAA,MAAM,wKAAwK,CAAA;AAChL,CAAC;AAEY,MAAA,iBAAiB,GAAG;AAC/B,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,SAAS,EAAE,oBAAoB;AAC/B,IAAA,kBAAkB,EAAE,kBAAkB;AACtC,IAAA,kBAAkB,EAAE,kBAAkB;;;;;;"}
|
package/client/utility-types.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utility-types.mjs","sources":["../../src/client/utility-types.ts"],"sourcesContent":["import { DecIndentAndCloseBlock, DocumentParts, IncIndent, indent, jsDoc, NewLine } from '../output/writer'\n\nexport function* utilityTypes(): DocumentParts {\n yield* jsDoc(`Defines an onCompletionAction of 'no_op'`)\n yield `export type OnCompleteNoOp = { onCompleteAction?: 'no_op' | OnApplicationComplete.NoOpOC }`\n yield* jsDoc(`Defines an onCompletionAction of 'opt_in'`)\n yield `export type OnCompleteOptIn = { onCompleteAction: 'opt_in' | OnApplicationComplete.OptInOC }`\n yield* jsDoc(`Defines an onCompletionAction of 'close_out'`)\n yield `export type OnCompleteCloseOut = { onCompleteAction: 'close_out' | OnApplicationComplete.CloseOutOC }`\n yield* jsDoc(`Defines an onCompletionAction of 'delete_application'`)\n yield `export type OnCompleteDelApp = { onCompleteAction: 'delete_application' | OnApplicationComplete.DeleteApplicationOC }`\n yield* jsDoc(`Defines an onCompletionAction of 'update_application'`)\n yield `export type OnCompleteUpdApp = { onCompleteAction: 'update_application' | OnApplicationComplete.UpdateApplicationOC }`\n\n yield* jsDoc('A state record containing a single unsigned integer')\n yield `export type IntegerState = {`\n yield IncIndent\n yield* jsDoc('Gets the state value as a BigInt.')\n yield `asBigInt(): bigint`\n yield* jsDoc('Gets the state value as a number.')\n yield `asNumber(): number`\n yield DecIndentAndCloseBlock\n yield* jsDoc('A state record containing binary data')\n yield `export type BinaryState = {`\n yield IncIndent\n yield* jsDoc('Gets the state value as a Uint8Array')\n yield `asByteArray(): Uint8Array`\n yield* jsDoc('Gets the state value as a string')\n yield `asString(): string`\n yield DecIndentAndCloseBlock\n\n yield NewLine\n yield `export type AppCreateCallTransactionResult = AppCallTransactionResult & Partial<AppCompilationResult> & AppReference`\n yield `export type AppUpdateCallTransactionResult = AppCallTransactionResult & Partial<AppCompilationResult>`\n\n yield NewLine\n yield `export type AppClientComposeCallCoreParams = Omit<AppClientCallCoreParams, 'sendParams'> & {`\n yield* indent(\n `sendParams?: Omit<SendTransactionParams, 'skipSending' | 'atc' | 'skipWaiting' | 'maxRoundsToWaitForConfirmation' | 'populateAppCallResources'>`,\n )\n yield `}`\n yield `export type AppClientComposeExecuteParams = Pick<SendTransactionParams, 'skipWaiting' | 'maxRoundsToWaitForConfirmation' | 'populateAppCallResources' | 'suppressLog'>`\n}\n\nexport const OnCompleteCodeMap = {\n no_op: 'OnCompleteNoOp',\n opt_in: 'OnCompleteOptIn',\n close_out: 'OnCompleteCloseOut',\n delete_application: 'OnCompleteDelApp',\n update_application: 'OnCompleteUpdApp',\n}\n"],"names":[],"mappings":";;AAEM,UAAW,YAAY,GAAA;AAC3B,IAAA,OAAO,KAAK,CAAC,CAAA,wCAAA,CAA0C,CAAC,CAAA;AACxD,IAAA,MAAM,6FAA6F,CAAA;AACnG,IAAA,OAAO,KAAK,CAAC,CAAA,yCAAA,CAA2C,CAAC,CAAA;AACzD,IAAA,MAAM,+FAA+F,CAAA;AACrG,IAAA,OAAO,KAAK,CAAC,CAAA,4CAAA,CAA8C,CAAC,CAAA;AAC5D,IAAA,MAAM,wGAAwG,CAAA;AAC9G,IAAA,OAAO,KAAK,CAAC,CAAA,qDAAA,CAAuD,CAAC,CAAA;AACrE,IAAA,MAAM,wHAAwH,CAAA;AAC9H,IAAA,OAAO,KAAK,CAAC,CAAA,qDAAA,CAAuD,CAAC,CAAA;AACrE,IAAA,MAAM,wHAAwH,CAAA;AAE9H,IAAA,OAAO,KAAK,CAAC,qDAAqD,CAAC,CAAA;AACnE,IAAA,MAAM,8BAA8B,CAAA;AACpC,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,OAAO,KAAK,CAAC,mCAAmC,CAAC,CAAA;AACjD,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,OAAO,KAAK,CAAC,mCAAmC,CAAC,CAAA;AACjD,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,MAAM,sBAAsB,CAAA;AAC5B,IAAA,OAAO,KAAK,CAAC,uCAAuC,CAAC,CAAA;AACrD,IAAA,MAAM,6BAA6B,CAAA;AACnC,IAAA,MAAM,SAAS,CAAA;AACf,IAAA,OAAO,KAAK,CAAC,sCAAsC,CAAC,CAAA;AACpD,IAAA,MAAM,2BAA2B,CAAA;AACjC,IAAA,OAAO,KAAK,CAAC,kCAAkC,CAAC,CAAA;AAChD,IAAA,MAAM,oBAAoB,CAAA;AAC1B,IAAA,MAAM,sBAAsB,CAAA;AAE5B,IAAA,MAAM,OAAO,CAAA;AACb,IAAA,MAAM,sHAAsH,CAAA;AAC5H,IAAA,MAAM,uGAAuG,CAAA;AAE7G,IAAA,MAAM,OAAO,CAAA;AACb,IAAA,MAAM,8FAA8F,CAAA;AACpG,IAAA,OAAO,MAAM,CACX,CAAA,+IAAA,CAAiJ,CAClJ,CAAA;AACD,IAAA,MAAM,GAAG,CAAA;AACT,IAAA,MAAM,wKAAwK,CAAA;AAChL,CAAC;AAEY,MAAA,iBAAiB,GAAG;AAC/B,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,SAAS,EAAE,oBAAoB;AAC/B,IAAA,kBAAkB,EAAE,kBAAkB;AACtC,IAAA,kBAAkB,EAAE,kBAAkB;;;;;"}
|
package/{index.cjs → index.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var load = require('./schema/load.
|
|
4
|
-
var generate = require('./client/generate.
|
|
5
|
-
var writer = require('./output/writer.
|
|
3
|
+
var load = require('./schema/load.js');
|
|
4
|
+
var generate = require('./client/generate.js');
|
|
5
|
+
var writer = require('./output/writer.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
@@ -11,3 +11,4 @@ exports.validateApplicationJson = load.validateApplicationJson;
|
|
|
11
11
|
exports.generate = generate.generate;
|
|
12
12
|
exports.writeDocumentPartsToStream = writer.writeDocumentPartsToStream;
|
|
13
13
|
exports.writeDocumentPartsToString = writer.writeDocumentPartsToString;
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
|
package/index.mjs
CHANGED
package/index.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.js","sources":["../../src/output/writer.ts"],"sourcesContent":["import type fs from 'fs'\n\nexport const IncIndent = Symbol('Increase Indent')\nexport const DecIndent = Symbol('Decrease Indent')\nexport const DecIndentAndCloseBlock = Symbol('Decrease Indent and write a closing brace')\nexport const NewLineMode = Symbol('New Line Mode')\nexport const RestoreLineMode = Symbol('Restore Line Mode')\nexport const PropertyDelimiter = Symbol('Property Delimiter')\nexport const InlineMode = Symbol('Inline Mode')\nexport const NewLine = Symbol('New Line')\n\nexport type Part =\n | string\n | typeof IncIndent\n | typeof DecIndent\n | typeof NewLineMode\n | typeof DecIndentAndCloseBlock\n | typeof InlineMode\n | typeof NewLine\n | typeof RestoreLineMode\n | typeof PropertyDelimiter\nexport type DocumentParts = Generator<Part, void>\n\nexport type WriteOptions = {\n indent?: string\n disableEslint?: boolean\n header?: string\n}\n\ninterface StringWriter {\n write(value: string): void\n get last(): string\n}\n\nexport function writeDocumentPartsToStream(document: DocumentParts, stream: fs.WriteStream, options: WriteOptions = {}) {\n const writer = {\n _last: '',\n write(val: string) {\n this._last = val\n stream.write(val)\n },\n get last() {\n return this._last\n },\n }\n writeDocumentPartsTo(document, options, writer)\n}\n\nexport function writeDocumentPartsToString(document: DocumentParts, options: WriteOptions = {}) {\n const writer = {\n result: [] as string[],\n _last: '',\n write(val: string) {\n this._last = val\n this.result.push(val)\n },\n get last() {\n return this._last\n },\n toString() {\n return this.result.join('')\n },\n }\n writeDocumentPartsTo(document, options, writer)\n return writer.toString()\n}\n\nexport function* inline(...parts: Array<Part | DocumentParts>) {\n yield InlineMode\n for (const part of parts) {\n if (typeof part === 'string' || typeof part === 'symbol') yield part\n else yield* part\n }\n yield RestoreLineMode\n}\n\nexport function* indent(...parts: Array<Part | DocumentParts>) {\n yield IncIndent\n for (const part of parts) {\n if (typeof part === 'string' || typeof part === 'symbol') yield part\n else yield* part\n }\n yield DecIndent\n}\n\nexport function* jsDoc(docs: string | { description: string; abiDescription?: string; params?: Record<string, string>; returns?: string }) {\n yield `/**`\n if (typeof docs === 'string') {\n yield ` * ${docs}`\n } else {\n yield ` * ${docs.description}`\n if (docs.abiDescription) {\n yield ' *'\n yield ` * ${docs.abiDescription}`\n }\n if (docs.params || docs.returns) {\n yield ' *'\n }\n for (const [paramName, paramDesc] of Object.entries(docs.params ?? {})) {\n yield ` * @param ${paramName} ${paramDesc}`\n }\n if (docs.returns) yield ` * @returns ${docs.returns}`\n }\n yield ' */'\n}\n\nfunction writeDocumentPartsTo(document: DocumentParts, { indent = ' ', ...options }: WriteOptions, writer: StringWriter): void {\n if (options.header) writer.write(`${options.header}\\n`)\n if (options.disableEslint) writer.write('/* eslint-disable */\\n')\n\n const lineModes = [NewLineMode]\n const currentLineMode = () => lineModes.at(-1) ?? NewLineMode\n\n let curIndent = ''\n for (const part of document) {\n switch (part) {\n case IncIndent:\n curIndent += indent\n break\n case DecIndent:\n curIndent = curIndent.slice(0, -indent.length)\n break\n case DecIndentAndCloseBlock:\n curIndent = curIndent.slice(0, -indent.length)\n writer.write(`${curIndent}}\\n`)\n break\n case NewLineMode:\n lineModes.push(NewLineMode)\n if (writer.last.slice(-1)[0] !== '\\n') {\n writer.write('\\n')\n }\n break\n case InlineMode:\n lineModes.push(InlineMode)\n break\n case RestoreLineMode:\n lineModes.pop()\n\n if (currentLineMode() === NewLineMode && writer.last.slice(-1)[0] !== '\\n') {\n writer.write('\\n')\n }\n break\n case PropertyDelimiter:\n if (currentLineMode() === NewLineMode) {\n writer.write('\\n')\n } else {\n writer.write(', ')\n }\n break\n case NewLine:\n writer.write('\\n')\n break\n default:\n if (writer.last.slice(-1)[0] === '\\n') writer.write(curIndent)\n writer.write(part)\n if (currentLineMode() === NewLineMode) writer.write('\\n')\n break\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
package/output/writer.mjs
CHANGED
|
@@ -137,3 +137,4 @@ function writeDocumentPartsTo(document, { indent = ' ', ...options }, writer) {
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
export { DecIndent, DecIndentAndCloseBlock, IncIndent, InlineMode, NewLine, NewLineMode, PropertyDelimiter, RestoreLineMode, indent, inline, jsDoc, writeDocumentPartsToStream, writeDocumentPartsToString };
|
|
140
|
+
//# sourceMappingURL=writer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"writer.mjs","sources":["../../src/output/writer.ts"],"sourcesContent":["import type fs from 'fs'\n\nexport const IncIndent = Symbol('Increase Indent')\nexport const DecIndent = Symbol('Decrease Indent')\nexport const DecIndentAndCloseBlock = Symbol('Decrease Indent and write a closing brace')\nexport const NewLineMode = Symbol('New Line Mode')\nexport const RestoreLineMode = Symbol('Restore Line Mode')\nexport const PropertyDelimiter = Symbol('Property Delimiter')\nexport const InlineMode = Symbol('Inline Mode')\nexport const NewLine = Symbol('New Line')\n\nexport type Part =\n | string\n | typeof IncIndent\n | typeof DecIndent\n | typeof NewLineMode\n | typeof DecIndentAndCloseBlock\n | typeof InlineMode\n | typeof NewLine\n | typeof RestoreLineMode\n | typeof PropertyDelimiter\nexport type DocumentParts = Generator<Part, void>\n\nexport type WriteOptions = {\n indent?: string\n disableEslint?: boolean\n header?: string\n}\n\ninterface StringWriter {\n write(value: string): void\n get last(): string\n}\n\nexport function writeDocumentPartsToStream(document: DocumentParts, stream: fs.WriteStream, options: WriteOptions = {}) {\n const writer = {\n _last: '',\n write(val: string) {\n this._last = val\n stream.write(val)\n },\n get last() {\n return this._last\n },\n }\n writeDocumentPartsTo(document, options, writer)\n}\n\nexport function writeDocumentPartsToString(document: DocumentParts, options: WriteOptions = {}) {\n const writer = {\n result: [] as string[],\n _last: '',\n write(val: string) {\n this._last = val\n this.result.push(val)\n },\n get last() {\n return this._last\n },\n toString() {\n return this.result.join('')\n },\n }\n writeDocumentPartsTo(document, options, writer)\n return writer.toString()\n}\n\nexport function* inline(...parts: Array<Part | DocumentParts>) {\n yield InlineMode\n for (const part of parts) {\n if (typeof part === 'string' || typeof part === 'symbol') yield part\n else yield* part\n }\n yield RestoreLineMode\n}\n\nexport function* indent(...parts: Array<Part | DocumentParts>) {\n yield IncIndent\n for (const part of parts) {\n if (typeof part === 'string' || typeof part === 'symbol') yield part\n else yield* part\n }\n yield DecIndent\n}\n\nexport function* jsDoc(docs: string | { description: string; abiDescription?: string; params?: Record<string, string>; returns?: string }) {\n yield `/**`\n if (typeof docs === 'string') {\n yield ` * ${docs}`\n } else {\n yield ` * ${docs.description}`\n if (docs.abiDescription) {\n yield ' *'\n yield ` * ${docs.abiDescription}`\n }\n if (docs.params || docs.returns) {\n yield ' *'\n }\n for (const [paramName, paramDesc] of Object.entries(docs.params ?? {})) {\n yield ` * @param ${paramName} ${paramDesc}`\n }\n if (docs.returns) yield ` * @returns ${docs.returns}`\n }\n yield ' */'\n}\n\nfunction writeDocumentPartsTo(document: DocumentParts, { indent = ' ', ...options }: WriteOptions, writer: StringWriter): void {\n if (options.header) writer.write(`${options.header}\\n`)\n if (options.disableEslint) writer.write('/* eslint-disable */\\n')\n\n const lineModes = [NewLineMode]\n const currentLineMode = () => lineModes.at(-1) ?? NewLineMode\n\n let curIndent = ''\n for (const part of document) {\n switch (part) {\n case IncIndent:\n curIndent += indent\n break\n case DecIndent:\n curIndent = curIndent.slice(0, -indent.length)\n break\n case DecIndentAndCloseBlock:\n curIndent = curIndent.slice(0, -indent.length)\n writer.write(`${curIndent}}\\n`)\n break\n case NewLineMode:\n lineModes.push(NewLineMode)\n if (writer.last.slice(-1)[0] !== '\\n') {\n writer.write('\\n')\n }\n break\n case InlineMode:\n lineModes.push(InlineMode)\n break\n case RestoreLineMode:\n lineModes.pop()\n\n if (currentLineMode() === NewLineMode && writer.last.slice(-1)[0] !== '\\n') {\n writer.write('\\n')\n }\n break\n case PropertyDelimiter:\n if (currentLineMode() === NewLineMode) {\n writer.write('\\n')\n } else {\n writer.write(', ')\n }\n break\n case NewLine:\n writer.write('\\n')\n break\n default:\n if (writer.last.slice(-1)[0] === '\\n') writer.write(curIndent)\n writer.write(part)\n if (currentLineMode() === NewLineMode) writer.write('\\n')\n break\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
"main": "index.js",
|
|
3
3
|
"types": "index.d.ts",
|
|
4
4
|
"name": "@algorandfoundation/algokit-client-generator",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "3.0.0-beta.1",
|
|
6
6
|
"description": "Generates a TypeScript client for interacting with, and deploying ARC-0032 smart contracts on the Algorand Blockchain.",
|
|
7
|
+
"module": "index.mjs",
|
|
7
8
|
"private": false,
|
|
8
9
|
"engines": {
|
|
9
10
|
"node": ">=19.0"
|
|
10
11
|
},
|
|
12
|
+
"type": "commonjs",
|
|
11
13
|
"bin": {
|
|
12
14
|
"@algorandfoundation/algokit-client-generator": "bin/cli.mjs",
|
|
13
15
|
"algokitgen": "bin/cli.mjs"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application.schema.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"application.schema.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.schema.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.schema.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsonschema = require('jsonschema');
|
|
4
|
-
var boom = require('../util/boom.
|
|
5
|
-
var application_schema = require('./application.schema.json.
|
|
6
|
-
var contract_schema = require('./contract.schema.json.
|
|
4
|
+
var boom = require('../util/boom.js');
|
|
5
|
+
var application_schema = require('./application.schema.json.js');
|
|
6
|
+
var contract_schema = require('./contract.schema.json.js');
|
|
7
7
|
|
|
8
8
|
async function loadApplicationJson(appJsonPath) {
|
|
9
9
|
const fs = await import('fs');
|
|
@@ -23,3 +23,4 @@ function validateApplicationJson(json) {
|
|
|
23
23
|
|
|
24
24
|
exports.loadApplicationJson = loadApplicationJson;
|
|
25
25
|
exports.validateApplicationJson = validateApplicationJson;
|
|
26
|
+
//# sourceMappingURL=load.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.js","sources":["../../src/schema/load.ts"],"sourcesContent":["import { Schema, Validator } from 'jsonschema'\nimport { boom } from '../util/boom'\nimport { AlgoAppSpec } from './application'\nimport appJsonSchema from './application.schema.json' with { type: 'json' }\nimport contractSchema from './contract.schema.json' with { type: 'json' }\n\nexport async function loadApplicationJson(appJsonPath: string): Promise<AlgoAppSpec> {\n const fs = await import('fs')\n if (!fs.existsSync(appJsonPath)) boom(`Could not find application.json file at ${appJsonPath}`)\n\n const file = JSON.parse(fs.readFileSync(appJsonPath, 'utf-8'))\n return validateApplicationJson(file)\n}\n\nexport function validateApplicationJson(json: unknown): AlgoAppSpec {\n const validator = new Validator()\n validator.addSchema(contractSchema, '/contract.schema.json')\n\n const result = validator.validate(json, appJsonSchema as unknown as Schema)\n\n if (!result.valid) boom(result.toString())\n\n return json as AlgoAppSpec\n}\n"],"names":["boom","Validator","contractSchema","appJsonSchema"],"mappings":";;;;;;;AAMO,eAAe,mBAAmB,CAAC,WAAmB,EAAA;AAC3D,IAAA,MAAM,EAAE,GAAG,MAAM,OAAO,IAAI,CAAC,CAAA;AAC7B,IAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;AAAE,QAAAA,SAAI,CAAC,CAAA,wCAAA,EAA2C,WAAW,CAAA,CAAE,CAAC,CAAA;AAE/F,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9D,IAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC;AAEK,SAAU,uBAAuB,CAAC,IAAa,EAAA;AACnD,IAAA,MAAM,SAAS,GAAG,IAAIC,oBAAS,EAAE,CAAA;AACjC,IAAA,SAAS,CAAC,SAAS,CAACC,uBAAc,EAAE,uBAAuB,CAAC,CAAA;IAE5D,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAEC,0BAAkC,CAAC,CAAA;IAE3E,IAAI,CAAC,MAAM,CAAC,KAAK;AAAE,QAAAH,SAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;AAE1C,IAAA,OAAO,IAAmB,CAAA;AAC5B;;;;;"}
|
package/schema/load.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load.mjs","sources":["../../src/schema/load.ts"],"sourcesContent":["import { Schema, Validator } from 'jsonschema'\nimport { boom } from '../util/boom'\nimport { AlgoAppSpec } from './application'\nimport appJsonSchema from './application.schema.json' with { type: 'json' }\nimport contractSchema from './contract.schema.json' with { type: 'json' }\n\nexport async function loadApplicationJson(appJsonPath: string): Promise<AlgoAppSpec> {\n const fs = await import('fs')\n if (!fs.existsSync(appJsonPath)) boom(`Could not find application.json file at ${appJsonPath}`)\n\n const file = JSON.parse(fs.readFileSync(appJsonPath, 'utf-8'))\n return validateApplicationJson(file)\n}\n\nexport function validateApplicationJson(json: unknown): AlgoAppSpec {\n const validator = new Validator()\n validator.addSchema(contractSchema, '/contract.schema.json')\n\n const result = validator.validate(json, appJsonSchema as unknown as Schema)\n\n if (!result.valid) boom(result.toString())\n\n return json as AlgoAppSpec\n}\n"],"names":[],"mappings":";;;;;AAMO,eAAe,mBAAmB,CAAC,WAAmB,EAAA;AAC3D,IAAA,MAAM,EAAE,GAAG,MAAM,OAAO,IAAI,CAAC,CAAA;AAC7B,IAAA,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;AAAE,QAAA,IAAI,CAAC,CAAA,wCAAA,EAA2C,WAAW,CAAA,CAAE,CAAC,CAAA;AAE/F,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAA;AAC9D,IAAA,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC;AAEK,SAAU,uBAAuB,CAAC,IAAa,EAAA;AACnD,IAAA,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;AACjC,IAAA,SAAS,CAAC,SAAS,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAA;IAE5D,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAkC,CAAC,CAAA;IAE3E,IAAI,CAAC,MAAM,CAAC,KAAK;AAAE,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;AAE1C,IAAA,OAAO,IAAmB,CAAA;AAC5B;;;;"}
|
package/util/boom.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boom.js","sources":["../../src/util/boom.ts"],"sourcesContent":["export const boom = (reason: string): never => {\n throw new Error(reason)\n}\n"],"names":[],"mappings":";;AAAa,MAAA,IAAI,GAAG,CAAC,MAAc,KAAW;AAC5C,IAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;AACzB;;;;"}
|
package/util/boom.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boom.mjs","sources":["../../src/util/boom.ts"],"sourcesContent":["export const boom = (reason: string): never => {\n throw new Error(reason)\n}\n"],"names":[],"mappings":"AAAa,MAAA,IAAI,GAAG,CAAC,MAAc,KAAW;AAC5C,IAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;AACzB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-console.js","sources":["../../src/util/color-console.ts"],"sourcesContent":["import chalk from 'chalk'\n\ntype ColorFn = (text: string) => string\n\nconst createColorFormatter =\n (textColor: ColorFn, argColor: ColorFn, consoleFn: 'log' | 'error' | 'info' | 'warn') =>\n (textParts: TemplateStringsArray, ...args: unknown[]): void => {\n // eslint-disable-next-line no-console\n console[consoleFn](\n textParts\n .flatMap((t, i) => (args.length > i ? [textColor(t), argColor(`${args[i]}`)] : textColor(t)))\n .reduce((acc, cur) => acc + cur, ''),\n )\n }\n\nexport const colorConsole = {\n info: createColorFormatter(chalk.cyan, chalk.blue, 'info'),\n warn: createColorFormatter(chalk.yellow, chalk.yellow.bold, 'warn'),\n success: createColorFormatter(chalk.green, chalk.green.bold, 'info'),\n error: createColorFormatter(chalk.red, chalk.red.bold, 'error'),\n}\n"],"names":[],"mappings":";;;;AAIA,MAAM,oBAAoB,GACxB,CAAC,SAAkB,EAAE,QAAiB,EAAE,SAA4C,KACpF,CAAC,SAA+B,EAAE,GAAG,IAAe,KAAU;;AAE5D,IAAA,OAAO,CAAC,SAAS,CAAC,CAChB,SAAS;AACN,SAAA,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,SAAA,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CACvC,CAAA;AACH,CAAC,CAAA;AAEU,MAAA,YAAY,GAAG;AAC1B,IAAA,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D,IAAA,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACnE,IAAA,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AACpE,IAAA,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;;;;;"}
|
package/util/color-console.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-console.mjs","sources":["../../src/util/color-console.ts"],"sourcesContent":["import chalk from 'chalk'\n\ntype ColorFn = (text: string) => string\n\nconst createColorFormatter =\n (textColor: ColorFn, argColor: ColorFn, consoleFn: 'log' | 'error' | 'info' | 'warn') =>\n (textParts: TemplateStringsArray, ...args: unknown[]): void => {\n // eslint-disable-next-line no-console\n console[consoleFn](\n textParts\n .flatMap((t, i) => (args.length > i ? [textColor(t), argColor(`${args[i]}`)] : textColor(t)))\n .reduce((acc, cur) => acc + cur, ''),\n )\n }\n\nexport const colorConsole = {\n info: createColorFormatter(chalk.cyan, chalk.blue, 'info'),\n warn: createColorFormatter(chalk.yellow, chalk.yellow.bold, 'warn'),\n success: createColorFormatter(chalk.green, chalk.green.bold, 'info'),\n error: createColorFormatter(chalk.red, chalk.red.bold, 'error'),\n}\n"],"names":[],"mappings":";;AAIA,MAAM,oBAAoB,GACxB,CAAC,SAAkB,EAAE,QAAiB,EAAE,SAA4C,KACpF,CAAC,SAA+B,EAAE,GAAG,IAAe,KAAU;;AAE5D,IAAA,OAAO,CAAC,SAAS,CAAC,CAChB,SAAS;AACN,SAAA,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,SAAA,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,CACvC,CAAA;AACH,CAAC,CAAA;AAEU,MAAA,YAAY,GAAG;AAC1B,IAAA,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1D,IAAA,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACnE,IAAA,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;AACpE,IAAA,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;;;;;"}
|
package/util/sanitization.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export interface Sanitizer {
|
|
2
|
+
makeSafeTypeIdentifier(value: string): string;
|
|
3
|
+
makeSafeMethodIdentifier(value: string): string;
|
|
4
|
+
makeSafeVariableIdentifier(value: string): string;
|
|
5
|
+
makeSafePropertyIdentifier(value: string): string;
|
|
6
|
+
makeSafeStringTypeLiteral(value: string): string;
|
|
7
|
+
getSafeMemberAccessor(value: string): string;
|
|
8
|
+
isSafeVariableIdentifier(value: string): boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const getSanitizer: ({ preserveNames }: {
|
|
11
|
+
preserveNames: boolean;
|
|
12
|
+
}) => Sanitizer;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var changeCase = require('change-case');
|
|
4
|
+
|
|
5
|
+
const replaceInvalidWithUnderscore = (value) => value.replace(/[^a-z0-9_$]+/gi, '_');
|
|
6
|
+
const escapeQuotes = (value) => value.replace(/['"]/g, (val) => `\\${val}`);
|
|
7
|
+
const defaultSanitiser = {
|
|
8
|
+
makeSafePropertyIdentifier(value) {
|
|
9
|
+
return changeCase.camelCase(replaceInvalidWithUnderscore(value));
|
|
10
|
+
},
|
|
11
|
+
makeSafeTypeIdentifier(value) {
|
|
12
|
+
return changeCase.pascalCase(replaceInvalidWithUnderscore(value));
|
|
13
|
+
},
|
|
14
|
+
makeSafeMethodIdentifier(value) {
|
|
15
|
+
return changeCase.camelCase(replaceInvalidWithUnderscore(value));
|
|
16
|
+
},
|
|
17
|
+
isSafeVariableIdentifier(value) {
|
|
18
|
+
return /^[a-z$_][a-z0-9_$]*$/i.test(value);
|
|
19
|
+
},
|
|
20
|
+
makeSafeVariableIdentifier(value) {
|
|
21
|
+
return changeCase.camelCase(replaceInvalidWithUnderscore(value));
|
|
22
|
+
},
|
|
23
|
+
makeSafeStringTypeLiteral(value) {
|
|
24
|
+
return escapeQuotes(value);
|
|
25
|
+
},
|
|
26
|
+
getSafeMemberAccessor(value) {
|
|
27
|
+
return this.isSafeVariableIdentifier(value) ? `.${value}` : `[${value}]`;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
const preservingSanitiser = {
|
|
31
|
+
isSafeVariableIdentifier(value) {
|
|
32
|
+
return /^[a-z$_][a-z0-9_$]*$/i.test(value);
|
|
33
|
+
},
|
|
34
|
+
makeSafeMethodIdentifier(value) {
|
|
35
|
+
return this.isSafeVariableIdentifier(value) ? value : `"${escapeQuotes(value)}"`;
|
|
36
|
+
},
|
|
37
|
+
makeSafePropertyIdentifier(value) {
|
|
38
|
+
return this.isSafeVariableIdentifier(value) ? value : `"${escapeQuotes(value)}"`;
|
|
39
|
+
},
|
|
40
|
+
makeSafeTypeIdentifier(value) {
|
|
41
|
+
return replaceInvalidWithUnderscore(value);
|
|
42
|
+
},
|
|
43
|
+
makeSafeVariableIdentifier(value) {
|
|
44
|
+
return replaceInvalidWithUnderscore(value);
|
|
45
|
+
},
|
|
46
|
+
makeSafeStringTypeLiteral(value) {
|
|
47
|
+
return escapeQuotes(value);
|
|
48
|
+
},
|
|
49
|
+
getSafeMemberAccessor(value) {
|
|
50
|
+
return this.isSafeVariableIdentifier(value) ? `.${value}` : `[${value}]`;
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
const getSanitizer = ({ preserveNames }) => (preserveNames ? preservingSanitiser : defaultSanitiser);
|
|
54
|
+
|
|
55
|
+
exports.getSanitizer = getSanitizer;
|
|
56
|
+
//# sourceMappingURL=sanitization.js.map
|
|
@@ -0,0 +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}` : `[${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;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;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;;;;"}
|
package/util/sanitization.mjs
CHANGED
|
@@ -1,11 +1,54 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { camelCase, pascalCase } from 'change-case';
|
|
2
2
|
|
|
3
3
|
const replaceInvalidWithUnderscore = (value) => value.replace(/[^a-z0-9_$]+/gi, '_');
|
|
4
|
-
const makeSafeTypeIdentifier = (value) => pascalCase(replaceInvalidWithUnderscore(value));
|
|
5
|
-
const makeSafeMethodIdentifier = (value) => camelCase(replaceInvalidWithUnderscore(value));
|
|
6
|
-
const isSafeVariableIdentifier = (value) => /^[a-z$_][a-z0-9_$]*$/i.test(value);
|
|
7
|
-
const makeSafeVariableIdentifier = (value) => isSafeVariableIdentifier(value) ? value : camelCase(replaceInvalidWithUnderscore(value)) || 'arg';
|
|
8
4
|
const escapeQuotes = (value) => value.replace(/['"]/g, (val) => `\\${val}`);
|
|
9
|
-
const
|
|
5
|
+
const defaultSanitiser = {
|
|
6
|
+
makeSafePropertyIdentifier(value) {
|
|
7
|
+
return camelCase(replaceInvalidWithUnderscore(value));
|
|
8
|
+
},
|
|
9
|
+
makeSafeTypeIdentifier(value) {
|
|
10
|
+
return pascalCase(replaceInvalidWithUnderscore(value));
|
|
11
|
+
},
|
|
12
|
+
makeSafeMethodIdentifier(value) {
|
|
13
|
+
return camelCase(replaceInvalidWithUnderscore(value));
|
|
14
|
+
},
|
|
15
|
+
isSafeVariableIdentifier(value) {
|
|
16
|
+
return /^[a-z$_][a-z0-9_$]*$/i.test(value);
|
|
17
|
+
},
|
|
18
|
+
makeSafeVariableIdentifier(value) {
|
|
19
|
+
return camelCase(replaceInvalidWithUnderscore(value));
|
|
20
|
+
},
|
|
21
|
+
makeSafeStringTypeLiteral(value) {
|
|
22
|
+
return escapeQuotes(value);
|
|
23
|
+
},
|
|
24
|
+
getSafeMemberAccessor(value) {
|
|
25
|
+
return this.isSafeVariableIdentifier(value) ? `.${value}` : `[${value}]`;
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
const preservingSanitiser = {
|
|
29
|
+
isSafeVariableIdentifier(value) {
|
|
30
|
+
return /^[a-z$_][a-z0-9_$]*$/i.test(value);
|
|
31
|
+
},
|
|
32
|
+
makeSafeMethodIdentifier(value) {
|
|
33
|
+
return this.isSafeVariableIdentifier(value) ? value : `"${escapeQuotes(value)}"`;
|
|
34
|
+
},
|
|
35
|
+
makeSafePropertyIdentifier(value) {
|
|
36
|
+
return this.isSafeVariableIdentifier(value) ? value : `"${escapeQuotes(value)}"`;
|
|
37
|
+
},
|
|
38
|
+
makeSafeTypeIdentifier(value) {
|
|
39
|
+
return replaceInvalidWithUnderscore(value);
|
|
40
|
+
},
|
|
41
|
+
makeSafeVariableIdentifier(value) {
|
|
42
|
+
return replaceInvalidWithUnderscore(value);
|
|
43
|
+
},
|
|
44
|
+
makeSafeStringTypeLiteral(value) {
|
|
45
|
+
return escapeQuotes(value);
|
|
46
|
+
},
|
|
47
|
+
getSafeMemberAccessor(value) {
|
|
48
|
+
return this.isSafeVariableIdentifier(value) ? `.${value}` : `[${value}]`;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
const getSanitizer = ({ preserveNames }) => (preserveNames ? preservingSanitiser : defaultSanitiser);
|
|
10
52
|
|
|
11
|
-
export {
|
|
53
|
+
export { getSanitizer };
|
|
54
|
+
//# sourceMappingURL=sanitization.mjs.map
|
|
@@ -0,0 +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}` : `[${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;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;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;;;;"}
|
package/util/sanitization.cjs
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var changeCase = require('change-case');
|
|
4
|
-
|
|
5
|
-
const replaceInvalidWithUnderscore = (value) => value.replace(/[^a-z0-9_$]+/gi, '_');
|
|
6
|
-
const makeSafeTypeIdentifier = (value) => changeCase.pascalCase(replaceInvalidWithUnderscore(value));
|
|
7
|
-
const makeSafeMethodIdentifier = (value) => changeCase.camelCase(replaceInvalidWithUnderscore(value));
|
|
8
|
-
const isSafeVariableIdentifier = (value) => /^[a-z$_][a-z0-9_$]*$/i.test(value);
|
|
9
|
-
const makeSafeVariableIdentifier = (value) => isSafeVariableIdentifier(value) ? value : changeCase.camelCase(replaceInvalidWithUnderscore(value)) || 'arg';
|
|
10
|
-
const escapeQuotes = (value) => value.replace(/['"]/g, (val) => `\\${val}`);
|
|
11
|
-
const makeSafePropertyIdentifier = (value) => (isSafeVariableIdentifier(value) ? value : `'${escapeQuotes(value)}'`);
|
|
12
|
-
|
|
13
|
-
exports.isSafeVariableIdentifier = isSafeVariableIdentifier;
|
|
14
|
-
exports.makeSafeMethodIdentifier = makeSafeMethodIdentifier;
|
|
15
|
-
exports.makeSafePropertyIdentifier = makeSafePropertyIdentifier;
|
|
16
|
-
exports.makeSafeTypeIdentifier = makeSafeTypeIdentifier;
|
|
17
|
-
exports.makeSafeVariableIdentifier = makeSafeVariableIdentifier;
|