{"_id":"@cambridge-pte/adonisjs6-gigya","name":"@cambridge-pte/adonisjs6-gigya","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@cambridge-pte/adonisjs6-gigya","description":"Gigya integration for AdonisJS v6 applications","version":"1.0.0","engines":{"node":">=20.6.0"},"type":"module","exports":{".":{"import":"./build/index.js","types":"./build/index.d.ts"},"./types":{"import":"./build/src/types/gigya.js","types":"./build/src/types/gigya.d.ts"},"./gigya_provider":{"import":"./build/providers/gigya_provider.js","types":"./build/providers/gigya_provider.d.ts"}},"scripts":{"clean":"del-cli build","copy:templates":"copyfiles \"stubs/**/*.stub\" build","typecheck":"tsc --noEmit","lint":"eslint .","format":"prettier --write .","quick:test":"node --import=./tsnode.esm.js --enable-source-maps bin/test.ts","pretest":"npm run lint","test":"c8 npm run quick:test","prebuild":"npm run lint && npm run clean","build":"tsc","postbuild":"npm run copy:templates","release":"np","version":"npm run build","prepublishOnly":"npm run build"},"keywords":[],"author":{"name":"Russel Herrera"},"license":"MIT","dependencies":{"gigya":"npm:@cambridge-pte/gigya@^3.0.5"},"devDependencies":{"@adonisjs/assembler":"^7.8.2","@adonisjs/core":"^6.19.0","@adonisjs/eslint-config":"2.0.0-beta.7","@adonisjs/prettier-config":"^1.4.0","@adonisjs/tsconfig":"^1.4.1","@japa/assert":"^3.0.0","@japa/runner":"^3.1.4","@swc/core":"^1.6.3","@types/node":"^20.14.5","c8":"^10.1.2","copyfiles":"^2.4.1","del-cli":"^5.1.0","eslint":"^9.15.0","np":"^10.0.6","prettier":"^3.3.2","ts-node-maintained":"^10.9.6","typescript":"^5.9.2"},"peerDependencies":{"@adonisjs/core":"^6.19.0"},"publishConfig":{"access":"public","tag":"latest"},"np":{"message":"chore(release): %s","tag":"latest","branch":"main","anyBranch":false},"c8":{"reporter":["text","html"],"exclude":["tests/**"]},"prettier":"@adonisjs/prettier-config","_id":"@cambridge-pte/adonisjs6-gigya@1.0.0","gitHead":"dc32459cd637c121fcce3be07f74feff9122541b","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-YPVnu8i2YRl4O49BqvGPprnLc3BKeDfLaWF+s40js0L2kwkezaFEhmgPNRobQple7w4ttpPybCapsmWVJQhL3g==","shasum":"88385d64ec5e5a0f410c1a772accdea3869e7ea1","tarball":"https://registry.npmjs.org/@cambridge-pte/adonisjs6-gigya/-/adonisjs6-gigya-1.0.0.tgz","fileCount":13,"unpackedSize":11850,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIByIGxUUsfxVLZ9Z3nEBVSYa+MrOUJoU1DBePxsqfSxFAiAsMA9qx2VMuF739DUmYXSLs8P/9T3IGOVMkKwWlWm9kg=="}]},"_npmUser":{"name":"rherreracup","email":"russel.herrera@cambridge.org"},"directories":{},"maintainers":[{"name":"moris00","email":"moris.mascarinas@cambridge.org"},{"name":"jsunico-cupa","email":"renzo.sunico@cambridge.org"},{"name":"rherreracup","email":"russel.herrera@cambridge.org"},{"name":"crugeria","email":"christian.rugeria@cambridge.org"},{"name":"educationtechnologysolutionsteam","email":"educationtechnologysolutionsteam@cambridge.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adonisjs6-gigya_1.0.0_1758813982039_0.19111557622723852"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-25T15:26:21.904Z","1.0.0":"2025-09-25T15:26:22.214Z","modified":"2025-09-25T15:26:22.589Z"},"maintainers":[{"name":"moris00","email":"moris.mascarinas@cambridge.org"},{"name":"jsunico-cupa","email":"renzo.sunico@cambridge.org"},{"name":"rherreracup","email":"russel.herrera@cambridge.org"},{"name":"crugeria","email":"christian.rugeria@cambridge.org"},{"name":"educationtechnologysolutionsteam","email":"educationtechnologysolutionsteam@cambridge.org"}],"description":"Gigya integration for AdonisJS v6 applications","keywords":[],"author":{"name":"Russel Herrera"},"license":"MIT","readme":"# AdonisJS Gigya Package\n\n> Gigya integration for AdonisJS v6 applications\n\nThis package provides seamless integration with Gigya's Customer Identity Access Management (CIAM) platform for AdonisJS applications. It includes a service provider, type definitions, and a convenient service wrapper for easy usage throughout your application.\n\n## Installation\n\nInstall the package using your preferred package manager:\n\n```bash\nnpm install @cambridge-pte/adonisjs6-gigya\n```\n\n```bash\nyarn add @cambridge-pte/adonisjs6-gigya\n```\n\n```bash\npnpm add @cambridge-pte/adonisjs6-gigya\n```\n\n### Install Gigya SDK (Required for TypeScript)\n\nIf you plan to create service wrappers with TypeScript support, you'll also need to install the Gigya SDK for type definitions:\n\n```bash\nnpm install gigya@npm:@cambridge-pte/gigya@^3.0.5\n```\n\n```bash\nyarn add gigya@npm:@cambridge-pte/gigya@^3.0.5\n```\n\n```bash\npnpm add gigya@npm:@cambridge-pte/gigya@^3.0.5\n```\n\n> **Note:** The Gigya SDK is already included as a dependency in this package for runtime usage. You only need to install it separately if you want TypeScript type definitions in your service wrappers.\n\n## Configuration\n\n### 1. Register the Provider\n\nAdd the Gigya provider to your `adonisrc.ts` file:\n\n```typescript\nimport { defineConfig } from '@adonisjs/core/app'\n\nexport default defineConfig({\n  // ...other configuration\n  providers: [\n    // ...other providers\n    () => import('@cambridge-pte/adonisjs6-gigya/gigya_provider'),\n  ],\n})\n```\n\n### 2. Create Configuration File\n\nCreate a configuration file at `config/gigya.ts`:\n\n```typescript\nimport { defineConfig } from '@adonisjs/core/app'\nimport env from '#start/env'\n\nconst gigyaConfig = defineConfig({\n  /**\n   * Gigya API key\n   */\n  apiKey: env.get('GIGYA_API_KEY'),\n\n  //...rest\n})\n\nexport default gigyaConfig\n```\n\n### 3. Environment Variables\n\nAdd the required environment variables to your `.env` file:\n\n```env\nGIGYA_API_KEY=your_gigya_api_key\nGIGYA_DATA_CENTER=us1\nGIGYA_SECRET=your_gigya_secret\n\n# OR for user key authentication:\n# GIGYA_USER_KEY=your_user_key\n# GIGYA_SECRET_KEY=your_secret_key\n\n# OR for RSA authentication:\n# GIGYA_RSA_USER_KEY=your_rsa_user_key\n# GIGYA_RSA_PRIVATE_KEY=your_rsa_private_key\n\n# Optional settings\nGIGYA_TIMEOUT=10000\nGIGYA_DEBUG=false\n```\n\n## Usage\n\n### Direct Container Access\n\nYou can access the Gigya instance directly from the IoC container:\n\n```typescript\nimport app from '@adonisjs/core/services/app'\n\n// In a controller, service, or other class\nconst gigya = await app.container.make('gigya')\nconst response = await gigya.accounts.getAccountInfo({ UID: 'user-id' })\n```\n\n### Service Wrapper (Recommended)\n\nCreate a service wrapper for easier usage throughout your application. Create the file `app/services/gigya/main.ts`:\n\n```typescript\nimport app from '@adonisjs/core/services/app'\nimport { Gigya } from 'gigya'\n\nlet gigya: Gigya\n\nawait app.booted(async () => {\n  gigya = await app.container.make('gigya')\n})\n\nexport { gigya as default }\n```\n\n### Using the Service in Controllers\n\n```typescript\nimport { HttpContext } from '@adonisjs/core/http'\nimport gigya from '#services/gigya/main'\n\nexport default class AuthController {\n  async search({ request, response }: HttpContext) {\n    const { email } = request.all()\n\n    try {\n      const result = await gigya.accounts.search({\n        query: `SELECT * FROM accounts where profile.email=${email}`,\n      })\n      return response.json({ success: true, data: result })\n    } catch (error) {\n      return response.status(400).json({\n        success: false,\n        error: error.message,\n      })\n    }\n  }\n}\n```\n\n## Authentication Methods\n\nThe package supports three authentication methods with Gigya:\n\n### Secret-based Authentication\n\n```typescript\n// config/gigya.ts\nexport default defineConfig({\n  apiKey: 'your_api_key',\n  dataCenter: 'us1',\n  secret: 'your_secret_key',\n})\n```\n\n### User Key Authentication\n\n```typescript\n// config/gigya.ts\nexport default defineConfig({\n  apiKey: 'your_api_key',\n  dataCenter: 'us1',\n  userKey: 'your_user_key',\n  secretKey: 'your_secret_key',\n})\n```\n\n### RSA Authentication\n\n```typescript\n// config/gigya.ts\nexport default defineConfig({\n  apiKey: 'your_api_key',\n  dataCenter: 'us1',\n  rsa: {\n    userKey: 'your_rsa_user_key',\n    privateKey: 'your_rsa_private_key',\n  },\n})\n```\n\n## API Reference\n\nThe service wrapper provides direct access to the Gigya instance. Once imported, you can use any Gigya SDK method:\n\n```typescript\nimport gigya from '#services/gigya/main'\n\n// Use any Gigya SDK method\nawait gigya.accounts.getAccountInfo({ UID: 'user-id' })\nawait gigya.accounts.register({ email: 'user@example.com', password: 'password' })\nawait gigya.accounts.login({ loginID: 'user@example.com', password: 'password' })\nawait gigya.accounts.logout({ UID: 'user-id' })\n```\n\nFor the complete Gigya API, refer to the [official Gigya documentation](https://developers.gigya.com/).\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-60eb533afc74599c744b2b4b1682f6a7"}