@voiceflow/api-sdk 3.27.20 → 3.27.22
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/build/cjs/client.d.ts +1 -0
- package/build/cjs/client.d.ts.map +1 -0
- package/build/cjs/client.js +0 -1
- package/build/cjs/client.test.d.ts +2 -0
- package/build/cjs/client.test.d.ts.map +1 -0
- package/build/cjs/client.test.js +54 -0
- package/build/cjs/fetch.d.ts +1 -0
- package/build/cjs/fetch.d.ts.map +1 -0
- package/build/cjs/fetch.js +10 -18
- package/build/cjs/fetch.test.d.ts +2 -0
- package/build/cjs/fetch.test.d.ts.map +1 -0
- package/build/cjs/fetch.test.js +194 -0
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.d.ts.map +1 -0
- package/build/cjs/index.js +10 -3
- package/build/cjs/index.test.d.ts +2 -0
- package/build/cjs/index.test.d.ts.map +1 -0
- package/build/cjs/index.test.js +72 -0
- package/build/cjs/interface.d.ts +1 -0
- package/build/cjs/interface.d.ts.map +1 -0
- package/build/cjs/interface.js +0 -1
- package/build/cjs/publicClient.d.ts +1 -0
- package/build/cjs/publicClient.d.ts.map +1 -0
- package/build/cjs/publicClient.js +0 -1
- package/build/cjs/resources/analytics/index.d.ts +1 -0
- package/build/cjs/resources/analytics/index.d.ts.map +1 -0
- package/build/cjs/resources/analytics/index.js +1 -2
- package/build/cjs/resources/analytics/queue.d.ts +1 -0
- package/build/cjs/resources/analytics/queue.d.ts.map +1 -0
- package/build/cjs/resources/analytics/queue.js +0 -1
- package/build/cjs/resources/analytics.test.d.ts +2 -0
- package/build/cjs/resources/analytics.test.d.ts.map +1 -0
- package/build/cjs/resources/analytics.test.js +186 -0
- package/build/cjs/resources/apiKey.d.ts +1 -0
- package/build/cjs/resources/apiKey.d.ts.map +1 -0
- package/build/cjs/resources/apiKey.js +1 -2
- package/build/cjs/resources/apiKey.test.d.ts +2 -0
- package/build/cjs/resources/apiKey.test.d.ts.map +1 -0
- package/build/cjs/resources/apiKey.test.js +90 -0
- package/build/cjs/resources/base.d.ts +1 -0
- package/build/cjs/resources/base.d.ts.map +1 -0
- package/build/cjs/resources/base.js +0 -1
- package/build/cjs/resources/base.test.d.ts +2 -0
- package/build/cjs/resources/base.test.d.ts.map +1 -0
- package/build/cjs/resources/base.test.js +57 -0
- package/build/cjs/resources/crud.d.ts +1 -0
- package/build/cjs/resources/crud.d.ts.map +1 -0
- package/build/cjs/resources/crud.js +0 -1
- package/build/cjs/resources/crud.test.d.ts +2 -0
- package/build/cjs/resources/crud.test.d.ts.map +1 -0
- package/build/cjs/resources/crud.test.js +104 -0
- package/build/cjs/resources/crudNested.d.ts +1 -0
- package/build/cjs/resources/crudNested.d.ts.map +1 -0
- package/build/cjs/resources/crudNested.js +0 -1
- package/build/cjs/resources/crudNested.test.d.ts +2 -0
- package/build/cjs/resources/crudNested.test.d.ts.map +1 -0
- package/build/cjs/resources/crudNested.test.js +105 -0
- package/build/cjs/resources/diagram.d.ts +1 -0
- package/build/cjs/resources/diagram.d.ts.map +1 -0
- package/build/cjs/resources/diagram.js +0 -1
- package/build/cjs/resources/diagram.test.d.ts +2 -0
- package/build/cjs/resources/diagram.test.d.ts.map +1 -0
- package/build/cjs/resources/diagram.test.js +130 -0
- package/build/cjs/resources/fetcher.d.ts +1 -0
- package/build/cjs/resources/fetcher.d.ts.map +1 -0
- package/build/cjs/resources/fetcher.js +0 -1
- package/build/cjs/resources/index.d.ts +1 -0
- package/build/cjs/resources/index.d.ts.map +1 -0
- package/build/cjs/resources/index.js +0 -1
- package/build/cjs/resources/interface.d.ts +1 -0
- package/build/cjs/resources/interface.d.ts.map +1 -0
- package/build/cjs/resources/interface.js +0 -1
- package/build/cjs/resources/note.d.ts +1 -0
- package/build/cjs/resources/note.d.ts.map +1 -0
- package/build/cjs/resources/note.js +0 -1
- package/build/cjs/resources/note.test.d.ts +2 -0
- package/build/cjs/resources/note.test.d.ts.map +1 -0
- package/build/cjs/resources/note.test.js +37 -0
- package/build/cjs/resources/program.d.ts +1 -0
- package/build/cjs/resources/program.d.ts.map +1 -0
- package/build/cjs/resources/program.js +0 -1
- package/build/cjs/resources/program.test.d.ts +2 -0
- package/build/cjs/resources/program.test.d.ts.map +1 -0
- package/build/cjs/resources/program.test.js +140 -0
- package/build/cjs/resources/project/constants.d.ts +1 -0
- package/build/cjs/resources/project/constants.d.ts.map +1 -0
- package/build/cjs/resources/project/constants.js +0 -1
- package/build/cjs/resources/project/index.d.ts +1 -0
- package/build/cjs/resources/project/index.d.ts.map +1 -0
- package/build/cjs/resources/project/index.js +0 -1
- package/build/cjs/resources/project/index.test.d.ts +2 -0
- package/build/cjs/resources/project/index.test.d.ts.map +1 -0
- package/build/cjs/resources/project/index.test.js +178 -0
- package/build/cjs/resources/project/interface.d.ts +1 -0
- package/build/cjs/resources/project/interface.d.ts.map +1 -0
- package/build/cjs/resources/project/interface.js +0 -1
- package/build/cjs/resources/project/member.d.ts +1 -0
- package/build/cjs/resources/project/member.d.ts.map +1 -0
- package/build/cjs/resources/project/member.js +0 -1
- package/build/cjs/resources/project/member.test.d.ts +2 -0
- package/build/cjs/resources/project/member.test.d.ts.map +1 -0
- package/build/cjs/resources/project/member.test.js +111 -0
- package/build/cjs/resources/projectSecret.d.ts +1 -0
- package/build/cjs/resources/projectSecret.d.ts.map +1 -0
- package/build/cjs/resources/projectSecret.js +0 -1
- package/build/cjs/resources/prototypeProgram.d.ts +1 -0
- package/build/cjs/resources/prototypeProgram.d.ts.map +1 -0
- package/build/cjs/resources/prototypeProgram.js +0 -1
- package/build/cjs/resources/prototypeProgram.test.d.ts +2 -0
- package/build/cjs/resources/prototypeProgram.test.d.ts.map +1 -0
- package/build/cjs/resources/prototypeProgram.test.js +18 -0
- package/build/cjs/resources/user.d.ts +1 -0
- package/build/cjs/resources/user.d.ts.map +1 -0
- package/build/cjs/resources/user.js +1 -2
- package/build/cjs/resources/user.test.d.ts +2 -0
- package/build/cjs/resources/user.test.d.ts.map +1 -0
- package/build/cjs/resources/user.test.js +35 -0
- package/build/cjs/resources/variableState.d.ts +1 -0
- package/build/cjs/resources/variableState.d.ts.map +1 -0
- package/build/cjs/resources/variableState.js +0 -1
- package/build/cjs/resources/variableState.test.d.ts +2 -0
- package/build/cjs/resources/variableState.test.d.ts.map +1 -0
- package/build/cjs/resources/variableState.test.js +56 -0
- package/build/cjs/resources/version/canvasTemplate.d.ts +1 -0
- package/build/cjs/resources/version/canvasTemplate.d.ts.map +1 -0
- package/build/cjs/resources/version/canvasTemplate.js +0 -1
- package/build/cjs/resources/version/canvasTemplate.test.d.ts +2 -0
- package/build/cjs/resources/version/canvasTemplate.test.d.ts.map +1 -0
- package/build/cjs/resources/version/canvasTemplate.test.js +89 -0
- package/build/cjs/resources/version/diagram.d.ts +1 -0
- package/build/cjs/resources/version/diagram.d.ts.map +1 -0
- package/build/cjs/resources/version/diagram.js +0 -1
- package/build/cjs/resources/version/domain.d.ts +1 -0
- package/build/cjs/resources/version/domain.d.ts.map +1 -0
- package/build/cjs/resources/version/domain.js +0 -1
- package/build/cjs/resources/version/domain.test.d.ts +2 -0
- package/build/cjs/resources/version/domain.test.d.ts.map +1 -0
- package/build/cjs/resources/version/domain.test.js +114 -0
- package/build/cjs/resources/version/index.d.ts +1 -0
- package/build/cjs/resources/version/index.d.ts.map +1 -0
- package/build/cjs/resources/version/index.js +1 -2
- package/build/cjs/resources/version/index.test.d.ts +2 -0
- package/build/cjs/resources/version/index.test.d.ts.map +1 -0
- package/build/cjs/resources/version/index.test.js +323 -0
- package/build/cjs/resources/version/program.d.ts +1 -0
- package/build/cjs/resources/version/program.d.ts.map +1 -0
- package/build/cjs/resources/version/program.js +0 -1
- package/build/cjs/resources/version/prototypeProgram.d.ts +1 -0
- package/build/cjs/resources/version/prototypeProgram.d.ts.map +1 -0
- package/build/cjs/resources/version/prototypeProgram.js +0 -1
- package/build/cjs/types.d.ts +1 -0
- package/build/cjs/types.d.ts.map +1 -0
- package/build/cjs/types.js +0 -1
- package/build/esm/client.d.ts +1 -0
- package/build/esm/client.d.ts.map +1 -0
- package/build/esm/client.js +0 -1
- package/build/esm/client.test.d.ts +2 -0
- package/build/esm/client.test.d.ts.map +1 -0
- package/build/esm/client.test.js +49 -0
- package/build/esm/fetch.d.ts +1 -0
- package/build/esm/fetch.d.ts.map +1 -0
- package/build/esm/fetch.js +10 -18
- package/build/esm/fetch.test.d.ts +2 -0
- package/build/esm/fetch.test.d.ts.map +1 -0
- package/build/esm/fetch.test.js +189 -0
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.d.ts.map +1 -0
- package/build/esm/index.js +10 -3
- package/build/esm/index.test.d.ts +2 -0
- package/build/esm/index.test.d.ts.map +1 -0
- package/build/esm/index.test.js +44 -0
- package/build/esm/interface.d.ts +1 -0
- package/build/esm/interface.d.ts.map +1 -0
- package/build/esm/interface.js +0 -1
- package/build/esm/publicClient.d.ts +1 -0
- package/build/esm/publicClient.d.ts.map +1 -0
- package/build/esm/publicClient.js +0 -1
- package/build/esm/resources/analytics/index.d.ts +1 -0
- package/build/esm/resources/analytics/index.d.ts.map +1 -0
- package/build/esm/resources/analytics/index.js +1 -2
- package/build/esm/resources/analytics/queue.d.ts +1 -0
- package/build/esm/resources/analytics/queue.d.ts.map +1 -0
- package/build/esm/resources/analytics/queue.js +0 -1
- package/build/esm/resources/analytics.test.d.ts +2 -0
- package/build/esm/resources/analytics.test.d.ts.map +1 -0
- package/build/esm/resources/analytics.test.js +181 -0
- package/build/esm/resources/apiKey.d.ts +1 -0
- package/build/esm/resources/apiKey.d.ts.map +1 -0
- package/build/esm/resources/apiKey.js +1 -2
- package/build/esm/resources/apiKey.test.d.ts +2 -0
- package/build/esm/resources/apiKey.test.d.ts.map +1 -0
- package/build/esm/resources/apiKey.test.js +85 -0
- package/build/esm/resources/base.d.ts +1 -0
- package/build/esm/resources/base.d.ts.map +1 -0
- package/build/esm/resources/base.js +0 -1
- package/build/esm/resources/base.test.d.ts +2 -0
- package/build/esm/resources/base.test.d.ts.map +1 -0
- package/build/esm/resources/base.test.js +52 -0
- package/build/esm/resources/crud.d.ts +1 -0
- package/build/esm/resources/crud.d.ts.map +1 -0
- package/build/esm/resources/crud.js +0 -1
- package/build/esm/resources/crud.test.d.ts +2 -0
- package/build/esm/resources/crud.test.d.ts.map +1 -0
- package/build/esm/resources/crud.test.js +99 -0
- package/build/esm/resources/crudNested.d.ts +1 -0
- package/build/esm/resources/crudNested.d.ts.map +1 -0
- package/build/esm/resources/crudNested.js +0 -1
- package/build/esm/resources/crudNested.test.d.ts +2 -0
- package/build/esm/resources/crudNested.test.d.ts.map +1 -0
- package/build/esm/resources/crudNested.test.js +100 -0
- package/build/esm/resources/diagram.d.ts +1 -0
- package/build/esm/resources/diagram.d.ts.map +1 -0
- package/build/esm/resources/diagram.js +0 -1
- package/build/esm/resources/diagram.test.d.ts +2 -0
- package/build/esm/resources/diagram.test.d.ts.map +1 -0
- package/build/esm/resources/diagram.test.js +125 -0
- package/build/esm/resources/fetcher.d.ts +1 -0
- package/build/esm/resources/fetcher.d.ts.map +1 -0
- package/build/esm/resources/fetcher.js +0 -1
- package/build/esm/resources/index.d.ts +1 -0
- package/build/esm/resources/index.d.ts.map +1 -0
- package/build/esm/resources/index.js +0 -1
- package/build/esm/resources/interface.d.ts +1 -0
- package/build/esm/resources/interface.d.ts.map +1 -0
- package/build/esm/resources/interface.js +0 -1
- package/build/esm/resources/note.d.ts +1 -0
- package/build/esm/resources/note.d.ts.map +1 -0
- package/build/esm/resources/note.js +0 -1
- package/build/esm/resources/note.test.d.ts +2 -0
- package/build/esm/resources/note.test.d.ts.map +1 -0
- package/build/esm/resources/note.test.js +32 -0
- package/build/esm/resources/program.d.ts +1 -0
- package/build/esm/resources/program.d.ts.map +1 -0
- package/build/esm/resources/program.js +0 -1
- package/build/esm/resources/program.test.d.ts +2 -0
- package/build/esm/resources/program.test.d.ts.map +1 -0
- package/build/esm/resources/program.test.js +135 -0
- package/build/esm/resources/project/constants.d.ts +1 -0
- package/build/esm/resources/project/constants.d.ts.map +1 -0
- package/build/esm/resources/project/constants.js +0 -1
- package/build/esm/resources/project/index.d.ts +1 -0
- package/build/esm/resources/project/index.d.ts.map +1 -0
- package/build/esm/resources/project/index.js +0 -1
- package/build/esm/resources/project/index.test.d.ts +2 -0
- package/build/esm/resources/project/index.test.d.ts.map +1 -0
- package/build/esm/resources/project/index.test.js +173 -0
- package/build/esm/resources/project/interface.d.ts +1 -0
- package/build/esm/resources/project/interface.d.ts.map +1 -0
- package/build/esm/resources/project/interface.js +0 -1
- package/build/esm/resources/project/member.d.ts +1 -0
- package/build/esm/resources/project/member.d.ts.map +1 -0
- package/build/esm/resources/project/member.js +0 -1
- package/build/esm/resources/project/member.test.d.ts +2 -0
- package/build/esm/resources/project/member.test.d.ts.map +1 -0
- package/build/esm/resources/project/member.test.js +106 -0
- package/build/esm/resources/projectSecret.d.ts +1 -0
- package/build/esm/resources/projectSecret.d.ts.map +1 -0
- package/build/esm/resources/projectSecret.js +0 -1
- package/build/esm/resources/prototypeProgram.d.ts +1 -0
- package/build/esm/resources/prototypeProgram.d.ts.map +1 -0
- package/build/esm/resources/prototypeProgram.js +0 -1
- package/build/esm/resources/prototypeProgram.test.d.ts +2 -0
- package/build/esm/resources/prototypeProgram.test.d.ts.map +1 -0
- package/build/esm/resources/prototypeProgram.test.js +13 -0
- package/build/esm/resources/user.d.ts +1 -0
- package/build/esm/resources/user.d.ts.map +1 -0
- package/build/esm/resources/user.js +1 -2
- package/build/esm/resources/user.test.d.ts +2 -0
- package/build/esm/resources/user.test.d.ts.map +1 -0
- package/build/esm/resources/user.test.js +30 -0
- package/build/esm/resources/variableState.d.ts +1 -0
- package/build/esm/resources/variableState.d.ts.map +1 -0
- package/build/esm/resources/variableState.js +0 -1
- package/build/esm/resources/variableState.test.d.ts +2 -0
- package/build/esm/resources/variableState.test.d.ts.map +1 -0
- package/build/esm/resources/variableState.test.js +51 -0
- package/build/esm/resources/version/canvasTemplate.d.ts +1 -0
- package/build/esm/resources/version/canvasTemplate.d.ts.map +1 -0
- package/build/esm/resources/version/canvasTemplate.js +0 -1
- package/build/esm/resources/version/canvasTemplate.test.d.ts +2 -0
- package/build/esm/resources/version/canvasTemplate.test.d.ts.map +1 -0
- package/build/esm/resources/version/canvasTemplate.test.js +84 -0
- package/build/esm/resources/version/diagram.d.ts +1 -0
- package/build/esm/resources/version/diagram.d.ts.map +1 -0
- package/build/esm/resources/version/diagram.js +0 -1
- package/build/esm/resources/version/domain.d.ts +1 -0
- package/build/esm/resources/version/domain.d.ts.map +1 -0
- package/build/esm/resources/version/domain.js +0 -1
- package/build/esm/resources/version/domain.test.d.ts +2 -0
- package/build/esm/resources/version/domain.test.d.ts.map +1 -0
- package/build/esm/resources/version/domain.test.js +109 -0
- package/build/esm/resources/version/index.d.ts +1 -0
- package/build/esm/resources/version/index.d.ts.map +1 -0
- package/build/esm/resources/version/index.js +1 -2
- package/build/esm/resources/version/index.test.d.ts +2 -0
- package/build/esm/resources/version/index.test.d.ts.map +1 -0
- package/build/esm/resources/version/index.test.js +318 -0
- package/build/esm/resources/version/program.d.ts +1 -0
- package/build/esm/resources/version/program.d.ts.map +1 -0
- package/build/esm/resources/version/program.js +0 -1
- package/build/esm/resources/version/prototypeProgram.d.ts +1 -0
- package/build/esm/resources/version/prototypeProgram.d.ts.map +1 -0
- package/build/esm/resources/version/prototypeProgram.js +0 -1
- package/build/esm/types.d.ts +1 -0
- package/build/esm/types.d.ts.map +1 -0
- package/build/esm/types.js +0 -1
- package/package.json +9 -7
- package/build/cjs/client.js.map +0 -1
- package/build/cjs/fetch.js.map +0 -1
- package/build/cjs/index.js.map +0 -1
- package/build/cjs/interface.js.map +0 -1
- package/build/cjs/publicClient.js.map +0 -1
- package/build/cjs/resources/analytics/index.js.map +0 -1
- package/build/cjs/resources/analytics/queue.js.map +0 -1
- package/build/cjs/resources/apiKey.js.map +0 -1
- package/build/cjs/resources/base.js.map +0 -1
- package/build/cjs/resources/crud.js.map +0 -1
- package/build/cjs/resources/crudNested.js.map +0 -1
- package/build/cjs/resources/diagram.js.map +0 -1
- package/build/cjs/resources/fetcher.js.map +0 -1
- package/build/cjs/resources/index.js.map +0 -1
- package/build/cjs/resources/interface.js.map +0 -1
- package/build/cjs/resources/note.js.map +0 -1
- package/build/cjs/resources/program.js.map +0 -1
- package/build/cjs/resources/project/constants.js.map +0 -1
- package/build/cjs/resources/project/index.js.map +0 -1
- package/build/cjs/resources/project/interface.js.map +0 -1
- package/build/cjs/resources/project/member.js.map +0 -1
- package/build/cjs/resources/projectSecret.js.map +0 -1
- package/build/cjs/resources/prototypeProgram.js.map +0 -1
- package/build/cjs/resources/user.js.map +0 -1
- package/build/cjs/resources/variableState.js.map +0 -1
- package/build/cjs/resources/version/canvasTemplate.js.map +0 -1
- package/build/cjs/resources/version/diagram.js.map +0 -1
- package/build/cjs/resources/version/domain.js.map +0 -1
- package/build/cjs/resources/version/index.js.map +0 -1
- package/build/cjs/resources/version/program.js.map +0 -1
- package/build/cjs/resources/version/prototypeProgram.js.map +0 -1
- package/build/cjs/types.js.map +0 -1
- package/build/esm/client.js.map +0 -1
- package/build/esm/fetch.js.map +0 -1
- package/build/esm/index.js.map +0 -1
- package/build/esm/interface.js.map +0 -1
- package/build/esm/publicClient.js.map +0 -1
- package/build/esm/resources/analytics/index.js.map +0 -1
- package/build/esm/resources/analytics/queue.js.map +0 -1
- package/build/esm/resources/apiKey.js.map +0 -1
- package/build/esm/resources/base.js.map +0 -1
- package/build/esm/resources/crud.js.map +0 -1
- package/build/esm/resources/crudNested.js.map +0 -1
- package/build/esm/resources/diagram.js.map +0 -1
- package/build/esm/resources/fetcher.js.map +0 -1
- package/build/esm/resources/index.js.map +0 -1
- package/build/esm/resources/interface.js.map +0 -1
- package/build/esm/resources/note.js.map +0 -1
- package/build/esm/resources/program.js.map +0 -1
- package/build/esm/resources/project/constants.js.map +0 -1
- package/build/esm/resources/project/index.js.map +0 -1
- package/build/esm/resources/project/interface.js.map +0 -1
- package/build/esm/resources/project/member.js.map +0 -1
- package/build/esm/resources/projectSecret.js.map +0 -1
- package/build/esm/resources/prototypeProgram.js.map +0 -1
- package/build/esm/resources/user.js.map +0 -1
- package/build/esm/resources/variableState.js.map +0 -1
- package/build/esm/resources/version/canvasTemplate.js.map +0 -1
- package/build/esm/resources/version/diagram.js.map +0 -1
- package/build/esm/resources/version/domain.js.map +0 -1
- package/build/esm/resources/version/index.js.map +0 -1
- package/build/esm/resources/version/program.js.map +0 -1
- package/build/esm/resources/version/prototypeProgram.js.map +0 -1
- package/build/esm/types.js.map +0 -1
- package/build/tsconfig.build.tsbuildinfo +0 -1
- package/build/tsconfig.esm.tsbuildinfo +0 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/* eslint-disable dot-notation */
|
|
2
|
+
import Analytics from './analytics/index.js';
|
|
3
|
+
const createClient = (encrypted = false) => {
|
|
4
|
+
const fetch = {
|
|
5
|
+
post: jest.fn().mockResolvedValue(undefined),
|
|
6
|
+
};
|
|
7
|
+
const encryption = {
|
|
8
|
+
encryptJSON: jest.fn().mockReturnValue('message'),
|
|
9
|
+
};
|
|
10
|
+
const analytics = new Analytics(fetch, encrypted ? { encryption: encryption } : undefined);
|
|
11
|
+
return { fetch, analytics, encryption };
|
|
12
|
+
};
|
|
13
|
+
describe('Analytics', () => {
|
|
14
|
+
it('.constructor', () => {
|
|
15
|
+
const { fetch, analytics } = createClient();
|
|
16
|
+
expect(analytics['fetch']).toBe(fetch);
|
|
17
|
+
});
|
|
18
|
+
it('.endpoint', () => {
|
|
19
|
+
const { analytics } = createClient();
|
|
20
|
+
expect(analytics['endpoint']).toBe('analytics');
|
|
21
|
+
});
|
|
22
|
+
it('.endpoint encrypted', () => {
|
|
23
|
+
const { analytics } = createClient(true);
|
|
24
|
+
expect(analytics['endpoint']).toBe('vf-ping');
|
|
25
|
+
});
|
|
26
|
+
it('.encryptedPayload throws error', () => {
|
|
27
|
+
const { analytics } = createClient(true);
|
|
28
|
+
delete analytics['encryption'];
|
|
29
|
+
expect(() => analytics['encryptedPayload']({})).toThrow('Encryption should be provided!');
|
|
30
|
+
});
|
|
31
|
+
it('.track', async () => {
|
|
32
|
+
const { fetch, analytics } = createClient();
|
|
33
|
+
await analytics.track('');
|
|
34
|
+
await analytics.track('Event');
|
|
35
|
+
await analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
36
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/private-track', {
|
|
37
|
+
event: 'Event',
|
|
38
|
+
envIDs: undefined,
|
|
39
|
+
hashed: undefined,
|
|
40
|
+
properties: {},
|
|
41
|
+
teamhashed: undefined,
|
|
42
|
+
});
|
|
43
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/private-track', {
|
|
44
|
+
event: 'Event 2',
|
|
45
|
+
hashed: ['id'],
|
|
46
|
+
properties: { id: 'id', value: 10 },
|
|
47
|
+
teamhashed: undefined,
|
|
48
|
+
envIDs: undefined,
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
it('.track encrypted', async () => {
|
|
52
|
+
const { fetch, analytics } = createClient(true);
|
|
53
|
+
await analytics.track('');
|
|
54
|
+
await analytics.track('Event');
|
|
55
|
+
await analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
56
|
+
expect(fetch.post).toHaveBeenCalledWith('vf-ping/private', { message: 'message' });
|
|
57
|
+
expect(fetch.post).toHaveBeenCalledWith('vf-ping/private', { message: 'message' });
|
|
58
|
+
});
|
|
59
|
+
it('.trackPublic', async () => {
|
|
60
|
+
const { fetch, analytics } = createClient();
|
|
61
|
+
await analytics.trackPublic('');
|
|
62
|
+
await analytics.trackPublic('Event');
|
|
63
|
+
await analytics.trackPublic('Event 2', { anonymousID: '1', properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
64
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/track', {
|
|
65
|
+
event: 'Event',
|
|
66
|
+
anonymousID: undefined,
|
|
67
|
+
envIDs: undefined,
|
|
68
|
+
hashed: undefined,
|
|
69
|
+
properties: {},
|
|
70
|
+
teamhashed: undefined,
|
|
71
|
+
});
|
|
72
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/track', {
|
|
73
|
+
event: 'Event 2',
|
|
74
|
+
anonymousID: '1',
|
|
75
|
+
hashed: ['id'],
|
|
76
|
+
properties: { id: 'id', value: 10 },
|
|
77
|
+
teamhashed: undefined,
|
|
78
|
+
envIDs: undefined,
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
it('.trackPublic encrypted', async () => {
|
|
82
|
+
const { fetch, analytics } = createClient(true);
|
|
83
|
+
await analytics.trackPublic('');
|
|
84
|
+
await analytics.trackPublic('Event');
|
|
85
|
+
await analytics.trackPublic('Event 2', { anonymousID: '1', properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
86
|
+
expect(fetch.post).toHaveBeenCalledWith('vf-ping', { message: 'message' });
|
|
87
|
+
expect(fetch.post).toHaveBeenCalledWith('vf-ping', { message: 'message' });
|
|
88
|
+
});
|
|
89
|
+
it('.track with batching', async () => {
|
|
90
|
+
const { fetch, analytics } = createClient();
|
|
91
|
+
analytics.setBatching(true);
|
|
92
|
+
analytics.track('');
|
|
93
|
+
analytics.track('Event');
|
|
94
|
+
analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
95
|
+
await Promise.resolve();
|
|
96
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/private-batch-track', [
|
|
97
|
+
{ event: 'Event', envIDs: undefined, hashed: undefined, properties: {}, teamhashed: undefined },
|
|
98
|
+
{ event: 'Event 2', hashed: ['id'], properties: { id: 'id', value: 10 }, teamhashed: undefined, envIDs: undefined },
|
|
99
|
+
]);
|
|
100
|
+
});
|
|
101
|
+
it('.track encrypted with batching', async () => {
|
|
102
|
+
const { fetch, analytics } = createClient(true);
|
|
103
|
+
analytics.setBatching(true);
|
|
104
|
+
analytics.track('');
|
|
105
|
+
analytics.track('Event');
|
|
106
|
+
analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
107
|
+
await Promise.resolve();
|
|
108
|
+
expect(fetch.post).toHaveBeenCalledWith('vf-ping/private-batch', { message: 'message' });
|
|
109
|
+
});
|
|
110
|
+
it('.trackPublic with batching', async () => {
|
|
111
|
+
const { fetch, analytics } = createClient();
|
|
112
|
+
analytics.setBatching(true);
|
|
113
|
+
analytics.trackPublic('');
|
|
114
|
+
analytics.trackPublic('Event');
|
|
115
|
+
analytics.trackPublic('Event 2', { anonymousID: '1', properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
116
|
+
await Promise.resolve();
|
|
117
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/batch-track', [
|
|
118
|
+
{ event: 'Event', anonymousID: undefined, envIDs: undefined, hashed: undefined, properties: {}, teamhashed: undefined },
|
|
119
|
+
{ event: 'Event 2', anonymousID: '1', hashed: ['id'], properties: { id: 'id', value: 10 }, teamhashed: undefined, envIDs: undefined },
|
|
120
|
+
]);
|
|
121
|
+
});
|
|
122
|
+
it('.trackPublic encrypted with batching', async () => {
|
|
123
|
+
const { fetch, analytics } = createClient(true);
|
|
124
|
+
analytics.setBatching(true);
|
|
125
|
+
analytics.trackPublic('');
|
|
126
|
+
analytics.trackPublic('Event');
|
|
127
|
+
analytics.trackPublic('Event 2', { anonymousID: '1', properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
128
|
+
await Promise.resolve();
|
|
129
|
+
expect(fetch.post).toHaveBeenCalledWith('vf-ping/batch', { message: 'message' });
|
|
130
|
+
});
|
|
131
|
+
it('.flush', async () => {
|
|
132
|
+
const { fetch, analytics } = createClient();
|
|
133
|
+
analytics.setBatching(true);
|
|
134
|
+
analytics.track('');
|
|
135
|
+
analytics.track('Event');
|
|
136
|
+
analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
137
|
+
analytics.flush();
|
|
138
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/private-batch-track', [
|
|
139
|
+
{ event: 'Event', envIDs: undefined, hashed: undefined, properties: {}, teamhashed: undefined },
|
|
140
|
+
{ event: 'Event 2', hashed: ['id'], properties: { id: 'id', value: 10 }, teamhashed: undefined, envIDs: undefined },
|
|
141
|
+
]);
|
|
142
|
+
});
|
|
143
|
+
it('.flush handle error', async () => {
|
|
144
|
+
const { fetch, analytics } = createClient();
|
|
145
|
+
analytics.setBatching(true);
|
|
146
|
+
analytics.track('');
|
|
147
|
+
analytics.track('Event');
|
|
148
|
+
analytics.track('Event 2', { properties: { id: 'id', value: 10 }, hashed: ['id'] });
|
|
149
|
+
fetch.post.mockRejectedValue(new Error('error'));
|
|
150
|
+
await analytics.flush();
|
|
151
|
+
expect(analytics['privateQueue']['queue']).toEqual([
|
|
152
|
+
{ event: 'Event', envIDs: undefined, hashed: undefined, properties: {}, teamhashed: undefined },
|
|
153
|
+
{ event: 'Event 2', hashed: ['id'], properties: { id: 'id', value: 10 }, teamhashed: undefined, envIDs: undefined },
|
|
154
|
+
]);
|
|
155
|
+
});
|
|
156
|
+
it('.identify', async () => {
|
|
157
|
+
const { fetch, analytics } = createClient();
|
|
158
|
+
await analytics.identify({ traits: { id: 'id', value: 10 }, teamhashed: ['id'] });
|
|
159
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/identify', {
|
|
160
|
+
teamhashed: ['id'],
|
|
161
|
+
traits: { id: 'id', value: 10 },
|
|
162
|
+
envIDs: undefined,
|
|
163
|
+
hashed: undefined,
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
it('.identify encrypted', async () => {
|
|
167
|
+
const { fetch, analytics } = createClient(true);
|
|
168
|
+
await analytics.identify({ traits: { id: 'id', value: 10 }, teamhashed: ['id'] });
|
|
169
|
+
expect(fetch.post).toHaveBeenCalledWith('vf-ping/user', { message: 'message' });
|
|
170
|
+
});
|
|
171
|
+
it('.identifyWorkspace', async () => {
|
|
172
|
+
const { fetch, analytics } = createClient();
|
|
173
|
+
await analytics.identifyWorkspace('id', { name: 'name' });
|
|
174
|
+
expect(fetch.post).toHaveBeenCalledWith('analytics/workspace/identify', { id: 'id', name: 'name' });
|
|
175
|
+
});
|
|
176
|
+
it('.identifyWorkspace encrypted', async () => {
|
|
177
|
+
const { fetch, analytics } = createClient(true);
|
|
178
|
+
await analytics.identifyWorkspace('id', { name: 'name' });
|
|
179
|
+
expect(fetch.post).toHaveBeenCalledWith('vf-ping/workspace', { message: 'message' });
|
|
180
|
+
});
|
|
181
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiKey.d.ts","sourceRoot":"","sources":["../../../src/resources/apiKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,YAAY,MAAM,QAAQ,CAAC;AAIlC,eAAO,MAAM,UAAU,QAAQ,CAAC;AAChC,oBAAY,UAAU,GAAG,OAAO,UAAU,CAAC;AAE3C,cAAM,cAAe,SAAQ,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,CAAC;gBAChF,KAAK,EAAE,KAAK,EAAE,EAAE,gBAA2B,EAAE,GAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAO;IAQhF,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;IAIjD,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAIvH,MAAM,CACjB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC,GAC9E,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAI/B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGjD;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -13,7 +13,7 @@ class APIKeyResource extends CrudResource {
|
|
|
13
13
|
return super._getByID(id);
|
|
14
14
|
}
|
|
15
15
|
async create(workspaceID, body) {
|
|
16
|
-
return super._post(
|
|
16
|
+
return super._post({ ...body, workspaceID });
|
|
17
17
|
}
|
|
18
18
|
async update(id, body) {
|
|
19
19
|
return super._put(id, body);
|
|
@@ -23,4 +23,3 @@ class APIKeyResource extends CrudResource {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
export default APIKeyResource;
|
|
26
|
-
//# sourceMappingURL=apiKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiKey.test.d.ts","sourceRoot":"","sources":["../../../src/resources/apiKey.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* eslint-disable dot-notation */
|
|
2
|
+
import APIKey from './apiKey.js';
|
|
3
|
+
import Crud from './crud.js';
|
|
4
|
+
const RESPONSE_DATA = { field1: '1', field2: { subfield: [1, 10] } };
|
|
5
|
+
const createClient = () => {
|
|
6
|
+
const fetch = {
|
|
7
|
+
get: jest.fn(),
|
|
8
|
+
post: jest.fn(),
|
|
9
|
+
put: jest.fn(),
|
|
10
|
+
patch: jest.fn(),
|
|
11
|
+
delete: jest.fn(),
|
|
12
|
+
};
|
|
13
|
+
const crud = {
|
|
14
|
+
get: jest.fn(),
|
|
15
|
+
getByID: jest.fn(),
|
|
16
|
+
post: jest.fn(),
|
|
17
|
+
put: jest.fn(),
|
|
18
|
+
patch: jest.fn(),
|
|
19
|
+
delete: jest.fn(),
|
|
20
|
+
};
|
|
21
|
+
const resource = new APIKey(fetch);
|
|
22
|
+
Crud.prototype['_get'] = crud.get;
|
|
23
|
+
Crud.prototype['_getByID'] = crud.getByID;
|
|
24
|
+
Crud.prototype['_post'] = crud.post;
|
|
25
|
+
Crud.prototype['_put'] = crud.put;
|
|
26
|
+
Crud.prototype['_patch'] = crud.patch;
|
|
27
|
+
Crud.prototype['_delete'] = crud.delete;
|
|
28
|
+
return {
|
|
29
|
+
crud,
|
|
30
|
+
fetch,
|
|
31
|
+
resource,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
describe('ApiKeyResource', () => {
|
|
35
|
+
it('.get', async () => {
|
|
36
|
+
const { crud, resource } = createClient();
|
|
37
|
+
crud.getByID.mockResolvedValue(RESPONSE_DATA);
|
|
38
|
+
const data = await resource.get('1');
|
|
39
|
+
expect(crud.getByID).toHaveBeenCalledTimes(1);
|
|
40
|
+
expect(crud.getByID).toHaveBeenCalledWith('1');
|
|
41
|
+
expect(data).toBe(RESPONSE_DATA);
|
|
42
|
+
});
|
|
43
|
+
it('.create', async () => {
|
|
44
|
+
const { crud, resource } = createClient();
|
|
45
|
+
crud.post.mockResolvedValue(RESPONSE_DATA);
|
|
46
|
+
const body = {
|
|
47
|
+
_id: '1',
|
|
48
|
+
creatorID: 1,
|
|
49
|
+
projectID: '1',
|
|
50
|
+
name: 'name',
|
|
51
|
+
variables: [],
|
|
52
|
+
platformData: {
|
|
53
|
+
slots: [],
|
|
54
|
+
intents: [],
|
|
55
|
+
settings: {},
|
|
56
|
+
publishing: {},
|
|
57
|
+
},
|
|
58
|
+
rootDiagramID: '1',
|
|
59
|
+
};
|
|
60
|
+
const data = await resource.create('1', body);
|
|
61
|
+
expect(crud.post).toHaveBeenCalledTimes(1);
|
|
62
|
+
expect(crud.post).toHaveBeenCalledWith({ ...body, workspaceID: '1' });
|
|
63
|
+
expect(data).toBe(RESPONSE_DATA);
|
|
64
|
+
});
|
|
65
|
+
it('.update', async () => {
|
|
66
|
+
const { crud, resource } = createClient();
|
|
67
|
+
crud.put.mockResolvedValue(RESPONSE_DATA);
|
|
68
|
+
const body = {
|
|
69
|
+
name: 'new name',
|
|
70
|
+
variables: ['aaaa'],
|
|
71
|
+
};
|
|
72
|
+
const data = await resource.update('1', body);
|
|
73
|
+
expect(crud.put).toHaveBeenCalledTimes(1);
|
|
74
|
+
expect(crud.put).toHaveBeenCalledWith('1', body);
|
|
75
|
+
expect(data).toBe(RESPONSE_DATA);
|
|
76
|
+
});
|
|
77
|
+
it('.delete', async () => {
|
|
78
|
+
const { crud, resource } = createClient();
|
|
79
|
+
crud.delete.mockResolvedValue(RESPONSE_DATA);
|
|
80
|
+
const data = await resource.delete('1');
|
|
81
|
+
expect(crud.delete).toHaveBeenCalledTimes(1);
|
|
82
|
+
expect(crud.delete).toHaveBeenCalledWith('1');
|
|
83
|
+
expect(data).toBe(RESPONSE_DATA);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/resources/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEpD,oBAAY,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;AAEvC,oBAAY,mBAAmB,CAAC,MAAM,SAAS,SAAS,EAAE,OAAO,GAAG,SAAS,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjH,cAAM,YAAY,CAAC,MAAM,SAAS,SAAS,EAAE,OAAO,GAAG,SAAS,CAAE,SAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;gBACpF,OAAO,EAAE,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC;IAIzD,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAIlD,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM;CAM5D;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.test.d.ts","sourceRoot":"","sources":["../../../src/resources/base.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* eslint-disable dot-notation */
|
|
2
|
+
import BaseResource from './base.js';
|
|
3
|
+
const createClient = () => {
|
|
4
|
+
const fetch = {
|
|
5
|
+
get: jest.fn(),
|
|
6
|
+
post: jest.fn(),
|
|
7
|
+
put: jest.fn(),
|
|
8
|
+
patch: jest.fn(),
|
|
9
|
+
delete: jest.fn(),
|
|
10
|
+
initWithOptions: jest.fn(),
|
|
11
|
+
};
|
|
12
|
+
class Resource {
|
|
13
|
+
}
|
|
14
|
+
const resource = new BaseResource({
|
|
15
|
+
fetch: fetch,
|
|
16
|
+
clazz: Resource,
|
|
17
|
+
endpoint: 'endpoint',
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
fetch,
|
|
21
|
+
resource,
|
|
22
|
+
Resource,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
describe('BaseResource', () => {
|
|
26
|
+
it('.constructor', () => {
|
|
27
|
+
const { fetch, resource, Resource } = createClient();
|
|
28
|
+
expect(resource['fetch']).toBe(fetch);
|
|
29
|
+
expect(resource['clazz']).toBe(Resource);
|
|
30
|
+
expect(resource['endpoint']).toBe('endpoint');
|
|
31
|
+
});
|
|
32
|
+
it('.options', () => {
|
|
33
|
+
const { fetch, resource, Resource } = createClient();
|
|
34
|
+
const instance = resource.options({
|
|
35
|
+
headers: { key: 'val' },
|
|
36
|
+
});
|
|
37
|
+
expect(instance).toBeInstanceOf(Resource);
|
|
38
|
+
expect(fetch.initWithOptions).toHaveBeenCalledWith({
|
|
39
|
+
headers: { key: 'val' },
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
it('._getFieldsQuery', () => {
|
|
43
|
+
const { resource } = createClient();
|
|
44
|
+
expect(resource['_getFieldsQuery']()).toBe('');
|
|
45
|
+
expect(resource['_getFieldsQuery'](['name'])).toBe('?fields=name');
|
|
46
|
+
});
|
|
47
|
+
it('._getIDsQuery', () => {
|
|
48
|
+
const { resource } = createClient();
|
|
49
|
+
expect(resource['_getIDsQuery']('name', [])).toBe('');
|
|
50
|
+
expect(resource['_getIDsQuery']('name', ['1', '2'])).toBe('?name=1&name=2');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../../src/resources/crud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,cAAM,YAAY,CAChB,MAAM,SAAS,SAAS,EACxB,EAAE,SAAS,MAAM,UAAU,CAAC,MAAM,CAAC,EACnC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,OAAO,SAAS,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,CAChD,SAAQ,YAAY,CAAC,MAAM,CAAC;IAC5B,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM;cAI/C,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;cAEzE,IAAI,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC;cAQlD,QAAQ,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;cAEvG,QAAQ,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;cAQ9E,KAAK,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;cAMlF,IAAI,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;cAM7G,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;cAMvG,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;CAKrF;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud.test.d.ts","sourceRoot":"","sources":["../../../src/resources/crud.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/* eslint-disable dot-notation */
|
|
2
|
+
import CrudResource from './crud.js';
|
|
3
|
+
const RESPONSE_DATA = {
|
|
4
|
+
data: { field1: '1', field2: { subfield: [1, 10] } },
|
|
5
|
+
status: 200,
|
|
6
|
+
};
|
|
7
|
+
const createClient = () => {
|
|
8
|
+
const fetch = {
|
|
9
|
+
get: jest.fn(),
|
|
10
|
+
post: jest.fn(),
|
|
11
|
+
put: jest.fn(),
|
|
12
|
+
patch: jest.fn(),
|
|
13
|
+
delete: jest.fn(),
|
|
14
|
+
};
|
|
15
|
+
const resource = new CrudResource({
|
|
16
|
+
clazz: class {
|
|
17
|
+
},
|
|
18
|
+
fetch: fetch,
|
|
19
|
+
endpoint: 'endpoint',
|
|
20
|
+
});
|
|
21
|
+
return {
|
|
22
|
+
fetch,
|
|
23
|
+
resource,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
describe('CrudResource', () => {
|
|
27
|
+
it('._getCRUDEndpoint', () => {
|
|
28
|
+
const { resource } = createClient();
|
|
29
|
+
expect(resource['_getCRUDEndpoint']()).toBe('endpoint');
|
|
30
|
+
});
|
|
31
|
+
it('._getCRUDEndpoint with id', () => {
|
|
32
|
+
const { resource } = createClient();
|
|
33
|
+
expect(resource['_getCRUDEndpoint']('1')).toBe('endpoint/1');
|
|
34
|
+
});
|
|
35
|
+
it('._get', async () => {
|
|
36
|
+
const { fetch, resource } = createClient();
|
|
37
|
+
fetch.get.mockResolvedValue(RESPONSE_DATA);
|
|
38
|
+
const data = await resource['_get']();
|
|
39
|
+
expect(fetch.get).toHaveBeenCalledTimes(1);
|
|
40
|
+
expect(fetch.get).toHaveBeenCalledWith('endpoint');
|
|
41
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
42
|
+
});
|
|
43
|
+
it('._get fields', async () => {
|
|
44
|
+
const { fetch, resource } = createClient();
|
|
45
|
+
fetch.get.mockResolvedValue(RESPONSE_DATA);
|
|
46
|
+
const data = await resource['_get'](['key']);
|
|
47
|
+
expect(fetch.get).toHaveBeenCalledTimes(1);
|
|
48
|
+
expect(fetch.get).toHaveBeenCalledWith('endpoint?fields=key');
|
|
49
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
50
|
+
});
|
|
51
|
+
it('._getByID', async () => {
|
|
52
|
+
const { fetch, resource } = createClient();
|
|
53
|
+
fetch.get.mockResolvedValue(RESPONSE_DATA);
|
|
54
|
+
const data = await resource['_getByID']('1');
|
|
55
|
+
expect(fetch.get).toHaveBeenCalledTimes(1);
|
|
56
|
+
expect(fetch.get).toHaveBeenCalledWith('endpoint/1');
|
|
57
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
58
|
+
});
|
|
59
|
+
it('._getByID fields', async () => {
|
|
60
|
+
const { fetch, resource } = createClient();
|
|
61
|
+
fetch.get.mockResolvedValue(RESPONSE_DATA);
|
|
62
|
+
const data = await resource['_getByID']('1', ['key', 'optional']);
|
|
63
|
+
expect(fetch.get).toHaveBeenCalledTimes(1);
|
|
64
|
+
expect(fetch.get).toHaveBeenCalledWith('endpoint/1?fields=key,optional');
|
|
65
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
66
|
+
});
|
|
67
|
+
it('._post', async () => {
|
|
68
|
+
const { fetch, resource } = createClient();
|
|
69
|
+
fetch.post.mockResolvedValue(RESPONSE_DATA);
|
|
70
|
+
const data = await resource['_post']({ key: 'value' });
|
|
71
|
+
expect(fetch.post).toHaveBeenCalledTimes(1);
|
|
72
|
+
expect(fetch.post).toHaveBeenCalledWith('endpoint', { key: 'value' });
|
|
73
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
74
|
+
});
|
|
75
|
+
it('._put', async () => {
|
|
76
|
+
const { fetch, resource } = createClient();
|
|
77
|
+
fetch.put.mockResolvedValue(RESPONSE_DATA);
|
|
78
|
+
const data = await resource['_put']('1', { key: 'value' });
|
|
79
|
+
expect(fetch.put).toHaveBeenCalledTimes(1);
|
|
80
|
+
expect(fetch.put).toHaveBeenCalledWith('endpoint/1', { key: 'value' });
|
|
81
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
82
|
+
});
|
|
83
|
+
it('._patch', async () => {
|
|
84
|
+
const { fetch, resource } = createClient();
|
|
85
|
+
fetch.patch.mockResolvedValue(RESPONSE_DATA);
|
|
86
|
+
const data = await resource['_patch']('1', { optional: 'value' });
|
|
87
|
+
expect(fetch.patch).toHaveBeenCalledTimes(1);
|
|
88
|
+
expect(fetch.patch).toHaveBeenCalledWith('endpoint/1', { optional: 'value' });
|
|
89
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
90
|
+
});
|
|
91
|
+
it('._delete', async () => {
|
|
92
|
+
const { fetch, resource } = createClient();
|
|
93
|
+
fetch.delete.mockResolvedValue(RESPONSE_DATA);
|
|
94
|
+
const data = await resource['_delete']('1');
|
|
95
|
+
expect(fetch.delete).toHaveBeenCalledTimes(1);
|
|
96
|
+
expect(fetch.delete).toHaveBeenCalledWith('endpoint/1');
|
|
97
|
+
expect(data).toBe('1');
|
|
98
|
+
});
|
|
99
|
+
});
|
|
@@ -22,3 +22,4 @@ declare class NestedCrudResource<ParentID, Scheme extends AnyRecord, ModelKey ex
|
|
|
22
22
|
protected _delete(parentID: ParentID, id: SchemeType<Scheme>[ModelKey]): Promise<SchemeType<Scheme>[ModelKey]>;
|
|
23
23
|
}
|
|
24
24
|
export default NestedCrudResource;
|
|
25
|
+
//# sourceMappingURL=crudNested.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crudNested.d.ts","sourceRoot":"","sources":["../../../src/resources/crudNested.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,YAAY,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEnE,aAAK,yBAAyB,CAAC,MAAM,SAAS,SAAS,EAAE,OAAO,SAAS;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,IAAI,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5I,cAAM,kBAAkB,CACtB,QAAQ,EACR,MAAM,SAAS,SAAS,EACxB,QAAQ,SAAS,MAAM,UAAU,CAAC,MAAM,CAAC,EACzC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,OAAO,SAAS,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,EAChD,OAAO,SAAS;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,CACvE,SAAQ,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC;IACrC,OAAO,CAAC,cAAc,CAAS;gBAEnB,OAAO,EAAE,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC;IAM/D,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM;cAKzE,IAAI,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;cAE7F,IAAI,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;cAQpE,QAAQ,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;cAEjI,QAAQ,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;cAQxG,KAAK,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;cAM5G,IAAI,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,EAC/C,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAChC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC;cAMG,MAAM,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;cAMxH,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;CAKrH;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crudNested.test.d.ts","sourceRoot":"","sources":["../../../src/resources/crudNested.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/* eslint-disable dot-notation */
|
|
2
|
+
import CrudNestedResource from './crudNested.js';
|
|
3
|
+
const RESPONSE_DATA = {
|
|
4
|
+
data: { field1: '1', field2: { subfield: [1, 10] } },
|
|
5
|
+
status: 200,
|
|
6
|
+
};
|
|
7
|
+
const createClient = () => {
|
|
8
|
+
const fetch = {
|
|
9
|
+
get: jest.fn(),
|
|
10
|
+
post: jest.fn(),
|
|
11
|
+
put: jest.fn(),
|
|
12
|
+
patch: jest.fn(),
|
|
13
|
+
delete: jest.fn(),
|
|
14
|
+
};
|
|
15
|
+
const resource = new CrudNestedResource({
|
|
16
|
+
clazz: class {
|
|
17
|
+
},
|
|
18
|
+
fetch: fetch,
|
|
19
|
+
endpoint: 'endpoint',
|
|
20
|
+
clazzOptions: { parentEndpoint: 'parentEndpoint' },
|
|
21
|
+
});
|
|
22
|
+
return {
|
|
23
|
+
fetch,
|
|
24
|
+
resource,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
describe('CrudNestedResource', () => {
|
|
28
|
+
it('._getCRUDEndpoint', () => {
|
|
29
|
+
const { resource } = createClient();
|
|
30
|
+
expect(resource['_getCRUDEndpoint']('parent-id')).toBe('parentEndpoint/parent-id/endpoint');
|
|
31
|
+
});
|
|
32
|
+
it('._getCRUDEndpoint with id', () => {
|
|
33
|
+
const { resource } = createClient();
|
|
34
|
+
expect(resource['_getCRUDEndpoint']('parent-id', '1')).toBe('parentEndpoint/parent-id/endpoint/1');
|
|
35
|
+
});
|
|
36
|
+
it('._get', async () => {
|
|
37
|
+
const { fetch, resource } = createClient();
|
|
38
|
+
fetch.get.mockResolvedValue(RESPONSE_DATA);
|
|
39
|
+
const data = await resource['_get']('parent-id');
|
|
40
|
+
expect(fetch.get).toHaveBeenCalledTimes(1);
|
|
41
|
+
expect(fetch.get).toHaveBeenCalledWith('parentEndpoint/parent-id/endpoint');
|
|
42
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
43
|
+
});
|
|
44
|
+
it('._get fields', async () => {
|
|
45
|
+
const { fetch, resource } = createClient();
|
|
46
|
+
fetch.get.mockResolvedValue(RESPONSE_DATA);
|
|
47
|
+
const data = await resource['_get']('parent-id', ['key']);
|
|
48
|
+
expect(fetch.get).toHaveBeenCalledTimes(1);
|
|
49
|
+
expect(fetch.get).toHaveBeenCalledWith('parentEndpoint/parent-id/endpoint?fields=key');
|
|
50
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
51
|
+
});
|
|
52
|
+
it('._getByID', async () => {
|
|
53
|
+
const { fetch, resource } = createClient();
|
|
54
|
+
fetch.get.mockResolvedValue(RESPONSE_DATA);
|
|
55
|
+
const data = await resource['_getByID']('parent-id', '1');
|
|
56
|
+
expect(fetch.get).toHaveBeenCalledTimes(1);
|
|
57
|
+
expect(fetch.get).toHaveBeenCalledWith('parentEndpoint/parent-id/endpoint/1');
|
|
58
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
59
|
+
});
|
|
60
|
+
it('._getByID fields', async () => {
|
|
61
|
+
const { fetch, resource } = createClient();
|
|
62
|
+
fetch.get.mockResolvedValue(RESPONSE_DATA);
|
|
63
|
+
const data = await resource['_getByID']('parent-id', '1', ['key', 'optional']);
|
|
64
|
+
expect(fetch.get).toHaveBeenCalledTimes(1);
|
|
65
|
+
expect(fetch.get).toHaveBeenCalledWith('parentEndpoint/parent-id/endpoint/1?fields=key,optional');
|
|
66
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
67
|
+
});
|
|
68
|
+
it('._post', async () => {
|
|
69
|
+
const { fetch, resource } = createClient();
|
|
70
|
+
fetch.post.mockResolvedValue(RESPONSE_DATA);
|
|
71
|
+
const data = await resource['_post']('parent-id', { key: 'value' });
|
|
72
|
+
expect(fetch.post).toHaveBeenCalledTimes(1);
|
|
73
|
+
expect(fetch.post).toHaveBeenCalledWith('parentEndpoint/parent-id/endpoint', { key: 'value' });
|
|
74
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
75
|
+
});
|
|
76
|
+
it('._put', async () => {
|
|
77
|
+
const { fetch, resource } = createClient();
|
|
78
|
+
fetch.put.mockResolvedValue(RESPONSE_DATA);
|
|
79
|
+
const data = await resource['_put']('parent-id', '1', { key: 'value' });
|
|
80
|
+
expect(fetch.put).toHaveBeenCalledTimes(1);
|
|
81
|
+
expect(fetch.put).toHaveBeenCalledWith('parentEndpoint/parent-id/endpoint/1', { key: 'value' });
|
|
82
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
83
|
+
});
|
|
84
|
+
it('._patch', async () => {
|
|
85
|
+
const { fetch, resource } = createClient();
|
|
86
|
+
fetch.patch.mockResolvedValue(RESPONSE_DATA);
|
|
87
|
+
const data = await resource['_patch']('parent-id', '1', { optional: 'value' });
|
|
88
|
+
expect(fetch.patch).toHaveBeenCalledTimes(1);
|
|
89
|
+
expect(fetch.patch).toHaveBeenCalledWith('parentEndpoint/parent-id/endpoint/1', { optional: 'value' });
|
|
90
|
+
expect(data).toBe(RESPONSE_DATA.data);
|
|
91
|
+
});
|
|
92
|
+
it('._delete', async () => {
|
|
93
|
+
const { fetch, resource } = createClient();
|
|
94
|
+
fetch.delete.mockResolvedValue(RESPONSE_DATA);
|
|
95
|
+
const data = await resource['_delete']('parent-id', '1');
|
|
96
|
+
expect(fetch.delete).toHaveBeenCalledTimes(1);
|
|
97
|
+
expect(fetch.delete).toHaveBeenCalledWith('parentEndpoint/parent-id/endpoint/1');
|
|
98
|
+
expect(data).toBe('1');
|
|
99
|
+
});
|
|
100
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../../src/resources/diagram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,YAAY,MAAM,QAAQ,CAAC;AAIlC,eAAO,MAAM,UAAU,QAAQ,CAAC;AAChC,oBAAY,UAAU,GAAG,OAAO,UAAU,CAAC;AAE3C,cAAM,eAAgB,SAAQ,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,CAAC;gBAC/F,KAAK,EAAE,KAAK;IAQX,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAMlI,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,EACnF,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GACjG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAM,CAAC,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAM9H,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,EACnF,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACzC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,CAAC,CAAC,SAAS,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAMzF,UAAU,CAAC,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CAAC,EAC1E,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAM7C,SAAS,CAAC,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CAAC,EACzE,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAM7C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMvD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAK1D;AAED,eAAe,eAAe,CAAC"}
|